import { Cross2Icon } from '@radix-ui/react-icons'; import { Table } from '@tanstack/react-table'; import { RefreshCw, X } from 'lucide-react'; import { useTranslation } from 'react-i18next'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Switch } from '@/components/ui/switch'; import { DateRangePicker } from '@/components/date-range-picker'; import type { DateTimeRangeValue } from '@/utils/date-range'; interface DataTableToolbarProps { table: Table; dateRange?: DateTimeRangeValue; onDateRangeChange?: (range: DateTimeRangeValue | undefined) => void; threadIdFilter: string; onThreadIdFilterChange: (threadId: string) => void; onRefresh?: () => void; showRefresh?: boolean; autoRefresh?: boolean; onAutoRefreshChange?: (enabled: boolean) => void; } export function ThreadsTableToolbar({ table, dateRange, onDateRangeChange, threadIdFilter, onThreadIdFilterChange, onRefresh, showRefresh = false, autoRefresh = false, onAutoRefreshChange, }: DataTableToolbarProps) { const { t } = useTranslation(); const hasDateRange = !!dateRange?.from || !!dateRange?.to; const isFiltered = table.getState().columnFilters.length > 0 || hasDateRange || !!threadIdFilter.trim(); return (
onThreadIdFilterChange(event.target.value)} className='h-8 w-[150px] lg:w-[250px]' /> {hasDateRange && ( )} {isFiltered && ( )}
{showRefresh && onAutoRefreshChange && (
)} {showRefresh && onRefresh && ( )}
); }