"use client"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Separator } from "@/components/ui/separator"; import { Star, X } from "lucide-react"; import { useGetGenres } from "@/api/mangamochi"; interface FilterSidebarProps { selectedGenres: number[]; selectedStatus: string[]; minRating: number; onGenresChange: (genres: number[]) => void; onStatusChange: (status: string[]) => void; onRatingChange: (rating: number) => void; } const STATUSES = ["Ongoing", "Completed", "Hiatus"]; const RATINGS = [ { label: "4.5+ Stars", value: 4.5 }, { label: "4.0+ Stars", value: 4.0 }, { label: "3.5+ Stars", value: 3.5 }, { label: "All Ratings", value: 0 }, ]; export function FilterSidebar({ selectedGenres, selectedStatus, minRating, onGenresChange, onStatusChange, onRatingChange, }: FilterSidebarProps) { const { data: genresData } = useGetGenres(); const toggleGenre = (genre: number) => { if (selectedGenres.includes(genre)) { onGenresChange(selectedGenres.filter((g) => g !== genre)); } else { onGenresChange([...selectedGenres, genre]); } }; const toggleStatus = (status: string) => { if (selectedStatus.includes(status)) { onStatusChange(selectedStatus.filter((s) => s !== status)); } else { onStatusChange([...selectedStatus, status]); } }; const clearAllFilters = () => { onGenresChange([]); onStatusChange([]); onRatingChange(0); }; const hasActiveFilters = selectedGenres.length > 0 || selectedStatus.length > 0 || minRating > 0; return ( ); }