"use client" import { useForm } from "react-hook-form" import { zodResolver } from "@hookform/resolvers/zod" import { Form, FormField, FormItem, FormLabel, FormControl, FormMessage } from "@/components/ui/form" import { Input } from "@/components/ui/input" import { Button } from "@/components/ui/button" import { Separator } from "@/components/ui/separator" import { DateTimePicker } from "@/components/ui/date-time-picker" import { BuildAreasAdd, buildAreasAddSchema } from "./schema" import { useAddBuildAreasMutation } from "./queries" const BuildAreasForm = ({ refetchTable, buildId }: { refetchTable: () => void, buildId: string }) => { const form = useForm({ resolver: zodResolver(buildAreasAddSchema), defaultValues: { areaName: "", areaCode: "", areaType: "", areaDirection: "", areaGrossSize: 0, areaNetSize: 0, width: 0, size: 0, expiryStarts: "", expiryEnds: "", }, }); const { handleSubmit } = form; const mutation = useAddBuildAreasMutation(); function onSubmit(values: BuildAreasAdd) { mutation.mutate({ data: values, buildId }); setTimeout(() => refetchTable(), 400) }; return (
{/* ROW 1 */}
( Area Name )} /> ( Area Code )} />
( Area Type )} /> ( Area Direction )} />
( Area Gross Size field.onChange(e.target.value === "" ? undefined : Number(e.target.value))} /> )} /> ( Area Net Size field.onChange(e.target.value === "" ? undefined : Number(e.target.value))} /> )} />
( Width field.onChange(e.target.value === "" ? undefined : Number(e.target.value))} /> )} /> ( Size field.onChange(e.target.value === "" ? undefined : Number(e.target.value))} /> )} />
{/* EXPIRY DATES */}
( Expiry Starts )} /> ( Expiry Ends )} />
); }; export { BuildAreasForm }