import { useState } from "react"; import { DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; export interface DropdownSelectorOption { value: T; label: string; } interface DropdownSelectorProps { value: T; options: DropdownSelectorOption[]; onChange: (value: T) => void; triggerClassName?: string; contentClassName?: string; } function ChevronDownIcon() { return ( ); } function ChevronUpIcon() { return ( ); } export function DropdownSelector({ value, options, onChange, triggerClassName, contentClassName, }: DropdownSelectorProps) { const selectedOption = options.find((opt) => opt.value === value); const [isOpen, setIsOpen] = useState(false); return ( {selectedOption?.label ?? value} {isOpen ? : } onChange(v as T)} > {options.map((option) => ( {option.label} ))} ); }