'use client' import { useState } from 'react' import { Search, Filter, X } from 'lucide-react' import type { DomainFiltersProps, DomainCategory, DomainStatus, DomainRegistrarId, DomainSortOption } from '@/lib/types' import { sortOptions } from '@/lib/domains/config' export default function DomainFilters({ onSearchChange, onCategoryChange, onStatusChange, onRegistrarChange, onSortChange, registrars }: DomainFiltersProps) { const [search, setSearch] = useState('') const [selectedCategories, setSelectedCategories] = useState([]) const [selectedStatuses, setSelectedStatuses] = useState([]) const [selectedRegistrars, setSelectedRegistrars] = useState([]) const [sortBy, setSortBy] = useState('name') const [showFilters, setShowFilters] = useState(false) const categories: DomainCategory[] = ['personal', 'service', 'project', 'fun', 'legacy'] const statuses: DomainStatus[] = ['active', 'parked', 'reserved'] const handleSearchChange = (value: string) => { setSearch(value) onSearchChange(value) } const toggleCategory = (category: DomainCategory) => { const updated = selectedCategories.includes(category) ? selectedCategories.filter(c => c !== category) : [...selectedCategories, category] setSelectedCategories(updated) onCategoryChange(updated) } const toggleStatus = (status: DomainStatus) => { const updated = selectedStatuses.includes(status) ? selectedStatuses.filter(s => s !== status) : [...selectedStatuses, status] setSelectedStatuses(updated) onStatusChange(updated) } const toggleRegistrar = (registrar: DomainRegistrarId) => { const updated = selectedRegistrars.includes(registrar) ? selectedRegistrars.filter(r => r !== registrar) : [...selectedRegistrars, registrar] setSelectedRegistrars(updated) onRegistrarChange(updated) } const handleSortChange = (value: DomainSortOption) => { setSortBy(value) onSortChange(value) } const clearFilters = () => { setSearch('') setSelectedCategories([]) setSelectedStatuses([]) setSelectedRegistrars([]) setSortBy('name') onSearchChange('') onCategoryChange([]) onStatusChange([]) onRegistrarChange([]) onSortChange('name') } const hasActiveFilters = search || selectedCategories.length > 0 || selectedStatuses.length > 0 || selectedRegistrars.length > 0 return (
handleSearchChange(e.target.value)} placeholder="Search domains..." className="w-full pl-10 pr-4 py-2 bg-gray-900/50 border border-gray-800 rounded-lg text-gray-200 placeholder-gray-500 focus:outline-none focus:border-gray-700" />
{showFilters && (

Filter Options

{hasActiveFilters && ( )}

Category

{categories.map(category => ( ))}

Status

{statuses.map(status => ( ))}

Registrar

{registrars.map(registrar => ( ))}
)}
) }