import type { RegionType } from "@/features/region/lib/data"; import { regionForm } from "@/features/region/lib/form"; import { Button } from "@/shared/ui/button"; import { Form, FormControl, FormField, FormItem, FormMessage, } from "@/shared/ui/form"; import { Input } from "@/shared/ui/input"; import { Label } from "@/shared/ui/label"; import { zodResolver } from "@hookform/resolvers/zod"; import { Loader2 } from "lucide-react"; import { useState, type Dispatch, type SetStateAction } from "react"; import { useForm } from "react-hook-form"; import type z from "zod"; interface Props { initialValues: RegionType | null; setDialogOpen: Dispatch>; setPlans: Dispatch>; } const AddedRegion = ({ initialValues, setDialogOpen, setPlans }: Props) => { const [load, setLoad] = useState(false); const form = useForm>({ resolver: zodResolver(regionForm), defaultValues: { name: initialValues?.name || "" }, }); function onSubmit(value: z.infer) { setLoad(true); setTimeout(() => { setPlans((prev) => { if (initialValues) { return prev.map((item) => item.id === initialValues.id ? { ...item, ...value } : item, ); } return [ ...prev, { id: prev.length ? prev[prev.length - 1].id + 1 : 1, ...value }, ]; }); setLoad(false); setDialogOpen(false); }, 2000); } return (
( )} /> ); }; export default AddedRegion;