'use client' import { format } from 'date-fns' import type { GanttFilterState } from './types' export interface GanttFilterBarProps { filters: GanttFilterState onFilterChange: (filters: GanttFilterState) => void uniqueStatuses: string[] uniqueCategories: string[] } export function GanttFilterBar({ filters, onFilterChange, uniqueStatuses, uniqueCategories }: GanttFilterBarProps) { const hasActiveFilters = filters.search !== '' || filters.statuses.length > 0 || filters.categories.length > 0 || filters.dateRange.start !== null || filters.dateRange.end !== null return (
onFilterChange({ ...filters, search: e.target.value })} /> {uniqueStatuses.length > 0 && ( )} {uniqueCategories.length > 0 && ( )} onFilterChange({ ...filters, dateRange: { ...filters.dateRange, start: e.target.value ? new Date(e.target.value) : null } })} title="Filter from date" /> onFilterChange({ ...filters, dateRange: { ...filters.dateRange, end: e.target.value ? new Date(e.target.value) : null } })} title="Filter to date" /> {hasActiveFilters && ( )} {/* Active filter pills */} {filters.statuses.map((s) => ( {s.replace(/_/g, ' ')} ))} {filters.categories.map((c) => ( {c} ))}
) }