"use client"; import { ArrowUpDown, ArrowUp, ArrowDown } from "lucide-react"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; export type SortOption = | "title-asc" | "title-desc" | "rating-desc" | "rating-asc" | "date-newest" | "date-oldest" | "status"; interface SortOptionsProps { currentSort: SortOption; onSortChange: (sort: SortOption) => void; } export function SortOptions({ currentSort, onSortChange }: SortOptionsProps) { const getSortLabel = () => { switch (currentSort) { case "title-asc": return "Title (A-Z)"; case "title-desc": return "Title (Z-A)"; case "rating-desc": return "Rating (High to Low)"; case "rating-asc": return "Rating (Low to High)"; case "date-newest": return "Newest First"; case "date-oldest": return "Oldest First"; case "status": return "Status"; default: return "Sort by"; } }; return ( Sort by Title onSortChange("title-asc")} className="cursor-pointer" > Title (A-Z) onSortChange("title-desc")} className="cursor-pointer" > Title (Z-A) Rating onSortChange("rating-desc")} className="cursor-pointer" > Rating (High to Low) onSortChange("rating-asc")} className="cursor-pointer" > Rating (Low to High) Publication Date onSortChange("date-newest")} className="cursor-pointer" > Newest First onSortChange("date-oldest")} className="cursor-pointer" > Oldest First Status onSortChange("status")} className="cursor-pointer" > Ongoing First ); }