"use client"; import * as React from "react"; import { z } from "zod"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { toast } from "sonner"; import { Sheet, // ⬅️ Drawer 대신 Sheet SheetContent, SheetHeader, SheetTitle, SheetFooter, SheetClose, } from "@/components/ui/sheet"; import { Button } from "@/components/ui/button"; import { Form, FormField, FormItem, FormLabel, FormControl, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { updateGeneralEvaluation } from "@/lib/general-check-list/service"; import { useRouter } from "next/navigation"; const schema = z.object({ category: z.string(), inspectionItem: z.string(), remarks: z.string().optional(), isActive: z.boolean().optional(), }); type Values = z.infer; export function EditEvaluationSheet({ open, onOpenChange, evaluation, onSuccess, }: { open: boolean; onOpenChange: (v: boolean) => void; evaluation: any; onSuccess?: () => void; }) { const [pending, setPending] = React.useState(false); const router = useRouter(); // ⬅️ const form = useForm({ resolver: zodResolver(schema), defaultValues: { category: evaluation.category, inspectionItem: evaluation.inspectionItem, remarks: evaluation.remarks ?? "", isActive: evaluation.isActive, }, }); async function onSubmit(values: Values) { setPending(true); const res = await updateGeneralEvaluation(evaluation.id, values); setPending(false); if (res.success) { toast.success(res.message); router.refresh(); onSuccess?.(); onOpenChange(false); } else { toast.error(res.message); } } return ( !pending && onOpenChange(v)}> 항목 수정 – {evaluation.serialNumber}
{/* 카테고리 */} ( 카테고리 )} /> {/* 점검 항목 */} ( 점검 항목 )} /> {/* 비고 */} ( 비고 )} /> {/* 활성 체크 */} ( 활성 field.onChange(e.target.checked)} disabled={pending} /> )} />
); }