"use client" import * as React from "react" import { useForm } from "react-hook-form" import { zodResolver } from "@hookform/resolvers/zod" import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from "@/components/ui/dialog" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { createProcurementItemSchema, CreateProcurementItemSchema } from "../validations" import { createProcurementItem } from "../service" interface AddProcurementItemDialogProps { open: boolean onOpenChange: (open: boolean) => void onSuccess?: () => void } export function AddProcurementItemDialog({ open, onOpenChange, onSuccess }: AddProcurementItemDialogProps) { // react-hook-form 세팅 const form = useForm({ resolver: zodResolver(createProcurementItemSchema), defaultValues: { itemCode: "", itemName: "", material: "", specification: "", unit: "", isActive: "Y", }, }) async function onSubmit(data: CreateProcurementItemSchema) { const result = await createProcurementItem({ itemCode: data.itemCode, itemName: data.itemName, material: data.material ?? null, specification: data.specification ?? null, unit: data.unit ?? null, isActive: data.isActive || 'Y', }) if (result.error) { alert(`에러: ${result.error}`) return } // 성공 시 모달 닫고 폼 리셋 form.reset() onOpenChange(false) onSuccess?.() } function handleDialogOpenChange(nextOpen: boolean) { if (!nextOpen) { form.reset() } onOpenChange(nextOpen) } return ( 새 품목 추가 새 품목 정보를 입력하고 추가 버튼을 누르세요.
( 품목코드 )} /> ( 품목명 * )} /> ( 재질 )} /> ( 규격 )} /> ( 단위 )} /> ( 활성화여부 )} />
) }