'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 && (
)}
{/* 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 || '...'}
)}
)}
);
}