import { useEffect, useState } from "react"; import { CheckIcon, ChevronsUpDownIcon } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "@/components/ui/command"; import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; import { cn } from "@/lib/utils"; import { numberToVersion, versionToNumber } from "@/utils/version"; const versions = [ "1.21.4", "1.21", "1.20", "1.18", "1.19", "1.17", "1.16", "1.15", "1.14", "1.13", "1.12", "1.11", "1.10", "1.9", "1.8", "1.7.2", "1.6.1", ]; interface Props { version: number; setVersion: React.Dispatch>; } function VersionCombobox({ version, setVersion }: Props) { const [comboboxOpen, setComboboxOpen] = useState(false); const [comboboxValue, setComboboxValue] = useState(numberToVersion(version)); useEffect(() => { setVersion(versionToNumber(comboboxValue)); }, [comboboxValue]); return ( No version found. {versions.map((version) => ( { setComboboxValue(currentValue === comboboxValue ? versions[0] : currentValue); setComboboxOpen(false); }} > {version} ))} ); } export default VersionCombobox;