import { DefaultTooltip, KeenIcon, useDataGrid } from '@/components'; import { useTransactionContext } from '../hooks/useTransactionContext'; import { Button } from '@/components/ui/button'; import { useCallback, useState, useEffect } from 'react'; import { toast } from 'sonner'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@/components/ui/select'; const ListToolbar = () => { const { table, reload } = useDataGrid(); const [trxDate, settrxDate] = useState({ from: '', to: '' }); const [searchValue, setSearchValue] = useState( (table.getColumn('code')?.getFilterValue() as string) ?? '' ); // const [statusValue, setStatusValue] = useState( // (table.getColumn('status')?.getFilterValue() as string) ?? '' // ); const [typeValue, setTypeValue] = useState( (table.getState().columnFilters.find(f => f.id === 'kind')?.value as string) ?? '' ); const formatDate = (date: Date): string => { return date.toISOString().split('T')[0]; }; useEffect(() => { const timer = setTimeout(() => { table.getColumn('code')?.setFilterValue(searchValue); table.setPageIndex(0); }, 200); return () => clearTimeout(timer); }, [searchValue, table]); // useEffect(() => { // const timer = setTimeout(() => { // table.getColumn('status')?.setFilterValue(statusValue); // table.setPageIndex(0); // }, 200); // return () => clearTimeout(timer); // }, [statusValue, table]); useEffect(() => { const timer = setTimeout(() => { table.setColumnFilters((prev) => [ ...prev.filter((f) => f.id !== 'kind'), { id: 'kind', value: typeValue }, ]); table.setPageIndex(0); }, 200); return () => clearTimeout(timer); }, [typeValue, table]); useEffect(() => { const today = new Date(); const firstDayOfMonth = new Date(today.getFullYear(), today.getMonth(), 1); settrxDate({ from: formatDate(firstDayOfMonth), to: formatDate(today), }); }, []); const handleFilterData = useCallback(() => { try { table.getColumn('transaction_date')?.setFilterValue(trxDate); } catch (error) { toast.error('Error applying filter'); console.error('Error applying filter:', error); } }, [trxDate, table]); useEffect(() => { if (trxDate.from && trxDate.to) { handleFilterData(); } }, [trxDate]); return (
{/* */}
); }; export default ListToolbar;