import { PanelLeftClose, PanelLeftOpen } from 'lucide-react' import { ReactNode, useMemo } from 'react' import { Button, Tooltip, TooltipContent, TooltipTrigger } from 'ui' import { formatCompactNumber } from './DataTable.utils' import { DataTableFilterControlsDrawer } from './DataTableFilters/DataTableFilterControlsDrawer' import { DataTableResetButton } from './DataTableResetButton' import { DataTableViewOptions } from './DataTableViewOptions' import { Kbd } from './primitives/Kbd' import { useDataTable } from './providers/DataTableProvider' import { SHORTCUT_IDS } from '@/state/shortcuts/registry' import { useShortcut } from '@/state/shortcuts/useShortcut' interface DataTableToolbarProps { renderActions?: () => ReactNode isFilterBarOpen: boolean setIsFilterBarOpen: React.Dispatch> } export function DataTableToolbar({ renderActions, isFilterBarOpen, setIsFilterBarOpen, }: DataTableToolbarProps) { const { table, isLoading, columnFilters } = useDataTable() const filters = table.getState().columnFilters useShortcut(SHORTCUT_IDS.DATA_TABLE_TOGGLE_FILTERS, () => setIsFilterBarOpen((prev) => !prev)) const rows = useMemo( () => ({ total: table.getCoreRowModel().rows.length, filtered: table.getFilteredRowModel().rows.length, }), [isLoading, columnFilters] ) return (

Toggle controls with{' '} B

{formatCompactNumber(rows.filtered)} of{' '} {formatCompactNumber(rows.total)} row(s){' '} filtered

{formatCompactNumber(rows.filtered)}{' '} row(s)

{filters.length ? : null} {renderActions?.()}
) }