"use client" import * as React from "react" import { zodResolver } from "@hookform/resolvers/zod" import { Loader } from "lucide-react" import { useForm } from "react-hook-form" import { toast } from "sonner" import { Button } from "@/components/ui/button" import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, } from "@/components/ui/sheet" import { ProcurementItem } from "@/db/schema/items" import { updateProcurementItemSchema, UpdateProcurementItemSchema } from "../validations" import { modifyProcurementItem } from "../service" import { Input } from "@/components/ui/input" interface UpdateProcurementItemSheetProps extends React.ComponentPropsWithRef { procurementItem: ProcurementItem | null } export function UpdateProcurementItemSheet({ procurementItem, ...props }: UpdateProcurementItemSheetProps) { const [isUpdatePending, startUpdateTransition] = React.useTransition() console.log(procurementItem) const form = useForm({ resolver: zodResolver(updateProcurementItemSchema), defaultValues: { itemCode: procurementItem?.itemCode ?? "", itemName: procurementItem?.itemName ?? "", material: procurementItem?.material ?? "", specification: procurementItem?.specification ?? "", unit: procurementItem?.unit ?? "", isActive: procurementItem?.isActive ?? "Y", }, }) React.useEffect(() => { if (procurementItem) { form.reset({ itemCode: procurementItem.itemCode ?? "", itemName: procurementItem.itemName ?? "", material: procurementItem.material ?? "", specification: procurementItem.specification ?? "", unit: procurementItem.unit ?? "", isActive: procurementItem.isActive ?? "Y", }) } }, [procurementItem, form]) function onSubmit(input: UpdateProcurementItemSchema) { startUpdateTransition(async () => { if (!procurementItem) return const { error } = await modifyProcurementItem({ id: procurementItem.id, ...input, }) if (error) { toast.error(error) return } form.reset() toast.success("품목이 성공적으로 수정되었습니다.") props.onOpenChange?.(false) }) } return ( 품목 수정 품목 정보를 수정하고 저장 버튼을 누르세요.
( 품목코드 )} /> ( 품목명 )} /> ( 재질 )} /> ( 규격 )} /> ( 단위 )} /> ( 활성화여부 )} />
) }