// app/(admin)/owner-companies/_components/owner-company-user-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 { createOwnerCompanyUser } from "./service"; const formSchema = z.object({ name: z.string().min(1, "이름을 입력해주세요"), email: z.string().email("올바른 이메일을 입력해주세요"), phone: z.string().optional(), }); type FormValues = z.infer; interface OwnerCompanyUserFormProps { companyId: number; } export function OwnerCompanyUserForm({ companyId }: OwnerCompanyUserFormProps) { const router = useRouter(); const form = useForm({ resolver: zodResolver(formSchema), defaultValues: { name: "", email: "", phone: "", }, }); async function onSubmit(values: FormValues) { try { const result = await createOwnerCompanyUser(companyId, values); if (result.success) { toast.success("사용자가 등록되었습니다"); router.push(`/evcp/data-room/owner-companies/${companyId}/users`); router.refresh(); } else { toast.error(result.error || "오류가 발생했습니다"); } } catch (error) { toast.error("오류가 발생했습니다"); } } return (
( 이름 * )} /> ( 이메일 * )} /> ( 전화번호 )} />
); }