import { z } from "zod"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "~/components/custom_ui/form"; import { customErrorMapWrapper } from "~/hooks/locale"; import { useZodForm } from "~/lib/zodForm"; import Input from "~/components/custom_ui/input"; import { Button } from "~/components/ui/button"; import type { FlagsId } from "~/schemas/public/Flags"; export type initialValues = { id: FlagsId; value: string; }; type FormProps = { initialValues: initialValues | null; submitMutation: (values: initialValues) => void; handleRemove: (id: FlagsId) => void; }; export const FormFlags = ({ initialValues, submitMutation, handleRemove, }: FormProps) => { const Schema = z.object({ id: z.string(), value: z.string(), }); type FormValues = z.infer; let defaultValues: FormValues; // This can come from your database or API. if (!initialValues) { defaultValues = { id: "", value: "", }; } else { defaultValues = { id: initialValues.id, value: initialValues.value, }; } z.setErrorMap(customErrorMapWrapper("it")); const form = useZodForm({ schema: Schema, defaultValues: defaultValues, }); function onSubmit(fields: FormValues) { const values = { id: fields.id as FlagsId, value: fields.value, }; submitMutation(values); } return ( <>
(
Codice
)} /> (
Valore testuale
)} />
{initialValues?.id && handleRemove && ( )}
); };