import type { Table } from '@tanstack/react-table'; import { Calendar, CircleDashedIcon, ListFilter, X, XCircle } from 'lucide-react'; import { Button } from '../button'; import { Input } from '../input'; import { DataTableFacetedFilter } from './data-table-faceted-filter'; import { DataTableSingleFilter } from './data-table-single-filter'; import { statuses, timePeriodGroups, timePeriods } from './data/data'; interface DataTableToolbarProps { table: Table; stats?: Record; onStatusFilterChange?: (values: string[]) => void; selectedStatusValues?: string[]; onTimePeriodFilterChange?: (values: string[]) => void; selectedTimePeriodValues?: string[]; onResetFilters?: () => void; isStatusFiltered?: boolean; isTimePeriodFiltered?: boolean; } export function DataTableToolbar({ table, stats, onStatusFilterChange, selectedStatusValues, onTimePeriodFilterChange, selectedTimePeriodValues, onResetFilters, isStatusFiltered, isTimePeriodFiltered, }: DataTableToolbarProps) { const isFiltered = table.getState().columnFilters.length > 0 || isStatusFiltered || isTimePeriodFiltered; const searchValue = (table.getColumn('title')?.getFilterValue() as string) ?? ''; const handleClearFilter = () => { table.getColumn('title')?.setFilterValue(''); }; const handleReset = () => { table.resetColumnFilters(); onResetFilters?.(); }; return (
table.getColumn('title')?.setFilterValue(event.target.value)} />
{searchValue && ( )}
{table.getColumn('status') && ( )} {table.getColumn('createdAt') && ( )} {isFiltered && ( )}
); }