"use client" import * as React from "react" import { zodResolver } from "@hookform/resolvers/zod" import { useForm } from "react-hook-form" import { toast } from "sonner" import * as z from "zod" import { Loader } from "lucide-react" import { Button } from "@/components/ui/button" import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, } from "@/components/ui/sheet" import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form" import { Input } from "@/components/ui/input" import { updateDocumentClassOption } from "@/lib/docu-list-rule/document-class/service" import { documentClassOptions } from "@/db/schema/documentClasses" const updateDocumentClassOptionSchema = z.object({ optionValue: z.string().min(1, "옵션 값은 필수입니다."), }) type UpdateDocumentClassOptionSchema = z.infer interface DocumentClassOptionEditSheetProps { open: boolean onOpenChange: (open: boolean) => void data: typeof documentClassOptions.$inferSelect | null onSuccess?: () => void } export function DocumentClassOptionEditSheet({ open, onOpenChange, data, onSuccess, }: DocumentClassOptionEditSheetProps) { const [isUpdatePending, startUpdateTransition] = React.useTransition() const form = useForm({ resolver: zodResolver(updateDocumentClassOptionSchema), defaultValues: { optionValue: data?.optionValue || "", }, mode: "onChange" }) React.useEffect(() => { if (data) { form.reset({ optionValue: data.optionValue || "", }) } }, [data, form]) async function onSubmit(input: UpdateDocumentClassOptionSchema) { if (!data) return startUpdateTransition(async () => { try { const result = await updateDocumentClassOption({ id: data.id, optionValue: input.optionValue, }) if (result.success) { toast.success("Document Class 옵션이 성공적으로 수정되었습니다.") onSuccess?.() onOpenChange(false) } else { toast.error(result.error || "수정에 실패했습니다.") } } catch (error) { console.error("Update error:", error) toast.error("Document Class 옵션 수정 중 오류가 발생했습니다.") } }) } return ( Document Class 옵션 수정 Document Class 옵션 정보를 수정하고 변경사항을 저장하세요
( 옵션 값 )} />
) }