export function DataTable(props: { data: ApiKeyColumn[] }) {
const [rowSelection, setRowSelection] = useState({});
const [visibleRows, setVisibleRows] = useState<ApiKeyColumn[]>(props.data);
const [showRevoked, setShowRevoked] = useState(true);
const table = useReactTable({
data: visibleRows,
columns,
getCoreRowModel: getCoreRowModel(),
onRowSelectionChange: setRowSelection,
enableRowSelection: (row) => {
return row.original.revokedAt === null;
},
getFilteredRowModel: getFilteredRowModel(),
state: {
rowSelection,
},
});
return (
<div>
<div className="flex items-center gap-2 py-2">
<Label>Show revoked</Label>
<Checkbox
checked={showRevoked}
onCheckedChange={(c) => {
setShowRevoked(!!c);
// This feels unperformant, is there a built in way to @tanstack/table to filter rows?
setVisibleRows(
props.data.filter((row) => {
return c || row.revokedAt === null;
}),
);
}}
className="max-w-sm"
/>
</div>
export function DataTable(props: { data: ApiKeyColumn[] }) {
const [rowSelection, setRowSelection] = useState({});
const [visibleRows, setVisibleRows] = useState<ApiKeyColumn[]>(props.data);
const [showRevoked, setShowRevoked] = useState(true);
const table = useReactTable({
data: visibleRows,
columns,
getCoreRowModel: getCoreRowModel(),
onRowSelectionChange: setRowSelection,
enableRowSelection: (row) => {
return row.original.revokedAt === null;
},
getFilteredRowModel: getFilteredRowModel(),
state: {
rowSelection,
},
});
return (
<div>
<div className="flex items-center gap-2 py-2">
<Label>Show revoked</Label>
<Checkbox
checked={showRevoked}
onCheckedChange={(c) => {
setShowRevoked(!!c);
// This feels unperformant, is there a built in way to @tanstack/table to filter rows?
setVisibleRows(
props.data.filter((row) => {
return c || row.revokedAt === null;
}),
);
}}
className="max-w-sm"
/>
</div>