'use client'; import { useState } from 'react'; import { Search, Filter, X, Calendar } from 'lucide-react'; interface OrderFiltersProps { onSearchChange: (search: string) => void; onStatusChange: (status: string) => void; onDateRangeChange: (dateFrom: string, dateTo: string) => void; onReset: () => void; searchValue: string; statusValue: string; dateFromValue: string; dateToValue: string; } export function OrderFilters({ onSearchChange, onStatusChange, onDateRangeChange, searchValue, statusValue, dateFromValue, dateToValue, onReset, }: OrderFiltersProps) { const [showDatePicker, setShowDatePicker] = useState(false); const [localDateFrom, setLocalDateFrom] = useState(dateFromValue); const [localDateTo, setLocalDateTo] = useState(dateToValue); const handleApplyDateRange = () => { onDateRangeChange(localDateFrom, localDateTo); setShowDatePicker(false); }; const handleResetDateRange = () => { setLocalDateFrom(''); setLocalDateTo(''); onDateRangeChange('', ''); setShowDatePicker(false); }; const hasActiveFilters = searchValue || statusValue || dateFromValue || dateToValue; return (
{/* Search Input */}
onSearchChange(e.target.value)} className="w-full pl-11 pr-4 py-2.5 border border-light-gray-border rounded-lg bg-white text-deep-sea-blue placeholder-deep-sea-blue/40 focus:outline-none focus:ring-2 focus:ring-deep-sea-blue/20 focus:border-deep-sea-blue transition-all" />
{/* Status Filter */}
{/* Date Range Picker */}
{/* Date Picker Dropdown */} {showDatePicker && (
setLocalDateFrom(e.target.value)} className="w-full px-3 py-2 border border-light-gray-border rounded-lg focus:outline-none focus:ring-2 focus:ring-deep-sea-blue/20" />
setLocalDateTo(e.target.value)} className="w-full px-3 py-2 border border-light-gray-border rounded-lg focus:outline-none focus:ring-2 focus:ring-deep-sea-blue/20" />
)}
{/* Reset Filters Button */} {hasActiveFilters && ( )}
{/* Active Filters Display */} {hasActiveFilters && (
Active filters: {searchValue && ( Search: "{searchValue}" )} {statusValue && ( Status: {statusValue.charAt(0).toUpperCase() + statusValue.slice(1)} )} {(dateFromValue || dateToValue) && ( Date: {dateFromValue || '...'} to {dateToValue || '...'} )}
)}
); }