// app/(admin)/owner-companies/_components/owner-company-form.tsx "use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import * as z from "zod"; import { Button } from "@/components/ui/button"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { useRouter } from "next/navigation"; import { toast } from "sonner"; import { createOwnerCompany, updateOwnerCompany } from "./service"; const formSchema = z.object({ name: z.string().min(1, "회사명을 입력해주세요"), }); type FormValues = z.infer; interface OwnerCompanyFormProps { initialData?: { id: number; name: string; }; } export function OwnerCompanyForm({ initialData }: OwnerCompanyFormProps) { const router = useRouter(); const isEdit = !!initialData; const form = useForm({ resolver: zodResolver(formSchema), defaultValues: { name: initialData?.name || "", }, }); async function onSubmit(values: FormValues) { try { const result = isEdit ? await updateOwnerCompany(initialData.id, values) : await createOwnerCompany(values); if (result.success) { toast.success( isEdit ? "회사 정보가 수정되었습니다" : "회사가 등록되었습니다" ); router.push("/evcp/data-room/owner-companies"); router.refresh(); } } catch (error) { toast.error("오류가 발생했습니다"); } } return (
( 회사명 * )} />
); }