import React, { useState } from "react"; import { Checkbox } from "baseui/checkbox"; import { StyledLink as Link } from "baseui/link"; import { TableBuilder, TableBuilderColumn } from "baseui/table-semantic"; export default function Example() { type Row = { foo: number; bar: string; url: string; selected: boolean; }; const [data, setData] = useState([ { foo: 10, bar: "banana", url: "https://example.com/b", selected: true, }, { foo: 1, bar: "carrot", url: "https://example.com/c", selected: false, }, { foo: 2, bar: "apple", url: "https://example.com/a", selected: false, }, ]); const hasAny = Boolean(data.length); const hasAll = hasAny && data.every((x) => x.selected); const hasSome = hasAny && data.some((x) => x.selected); function toggleAll() { setData((data) => data.map((row) => ({ ...row, selected: !hasAll, })), ); } function toggle(event: any) { const { name, checked } = event.currentTarget; setData((data) => data.map((row) => ({ ...row, selected: String(row.foo) === name ? checked : row.selected, })), ); } return ( } > {(row: Row) => ( )} {(row: Row) => {row.bar}} {(row: Row) => row.foo} ); }