import { zodResolver } from "@hookform/resolvers/zod"; import { DialogTitle } from "@radix-ui/react-dialog"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { Button } from "./ui/button"; import { Dialog, DialogContent, DialogTrigger } from "./ui/dialog"; import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from "./ui/form"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./ui/select"; enum Metric { qmprice = 'Price per square meter', rooms = 'Number of rooms', qm = 'Area', price = 'Price', } interface ParameterValues { metric: Metric } export function Parameters( props: { isOpen: boolean, onSubmit: (fromValues: ParameterValues) => void, } ) { const { register, watch, formState: { errors }, } = useForm() // const onSubmit: SubmitHandler = (data) => console.log(data) console.log(watch("metric")) console.log(errors) const formSchema = z.object({ metric: z.nativeEnum(Metric, { required_error: "Metric is required" }), }) const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { metric: Metric.qmprice, }, }) // 2. Define a submit handler. function onSubmit(values: z.infer) { // Do something with the form values. // ✅ This will be type-safe and validated. console.log(values) props.onSubmit(values) } return <> Visualization Parameters
( Metric to visualize This is your public display name. )} />
}