'use client' import { Button } from '@thedaviddias/design-system/button' import { Checkbox } from '@thedaviddias/design-system/checkbox' import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from '@thedaviddias/design-system/dropdown-menu' import { Filter, X } from 'lucide-react' import { useState } from 'react' import { categories } from '@/lib/categories' interface SearchFiltersProps { selectedCategories: string[] onCategoryChange: (categories: string[]) => void availableCategories?: string[] resultCount?: number } /** * Renders a category filter dropdown for search results */ export function SearchFilters({ selectedCategories, onCategoryChange, availableCategories = [] }: SearchFiltersProps) { const [isOpen, setIsOpen] = useState(false) // Get categories that have results or are selected const relevantCategories = categories.filter( category => availableCategories.includes(category.slug) || selectedCategories.includes(category.slug) ) /** * Toggles a category filter on or off */ const handleCategoryToggle = (categorySlug: string, checked: boolean) => { if (checked) { onCategoryChange([...selectedCategories, categorySlug]) } else { onCategoryChange(selectedCategories.filter(c => c !== categorySlug)) } } /** * Clears all active category filters */ const clearAllFilters = () => { onCategoryChange([]) } const activeFiltersCount = selectedCategories.length if (relevantCategories.length === 0) return null return (