"use client" import * as React from "react" import { ArrowRightIcon, RefreshCcwIcon } from "lucide-react" import { Button } from "@/registry/ui/button" import { ButtonGroup } from "@/registry/ui/button-group" import { Input } from "@/registry/ui/input" import { Select, SelectContent, SelectItem, SelectTrigger, } from "@/registry/ui/select" const UNITS = [ { value: "km", label: "Kilometers" }, { value: "mi", label: "Miles" }, ] export function ButtonGroupSelect() { const [unit, setUnit] = React.useState<"km" | "mi">("km") const [amount, setAmount] = React.useState("") const parsed = Number(amount) const valid = amount === "" || (!Number.isNaN(parsed) && parsed >= 0) const converted = React.useMemo(() => { if (Number.isNaN(parsed) || amount === "") return "" return unit === "km" ? (parsed * 0.621371).toFixed(2) + " mi" : (parsed / 0.621371).toFixed(2) + " km" }, [amount, parsed, unit]) return ( setAmount(e.target.value)} aria-invalid={!valid} className={!valid ? "border-destructive" : undefined} /> ) } export default ButtonGroupSelect