summaryrefslogtreecommitdiff
path: root/lib/vendor-regular-registrations/table/safety-qualification-update-dialog.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vendor-regular-registrations/table/safety-qualification-update-dialog.tsx')
-rw-r--r--lib/vendor-regular-registrations/table/safety-qualification-update-dialog.tsx143
1 files changed, 0 insertions, 143 deletions
diff --git a/lib/vendor-regular-registrations/table/safety-qualification-update-dialog.tsx b/lib/vendor-regular-registrations/table/safety-qualification-update-dialog.tsx
deleted file mode 100644
index 80084732..00000000
--- a/lib/vendor-regular-registrations/table/safety-qualification-update-dialog.tsx
+++ /dev/null
@@ -1,143 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { useForm } from "react-hook-form"
-import { zodResolver } from "@hookform/resolvers/zod"
-import { z } from "zod"
-import { toast } from "sonner"
-
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogHeader,
- DialogTitle,
-} from "@/components/ui/dialog"
-import {
- Form,
- FormControl,
- FormField,
- FormItem,
- FormLabel,
- FormMessage,
-} from "@/components/ui/form"
-import { Button } from "@/components/ui/button"
-import { Textarea } from "@/components/ui/textarea"
-import { updateSafetyQualification } from "../service"
-
-const formSchema = z.object({
- safetyQualificationContent: z.string().min(1, "안전적격성 평가 내용을 입력해주세요."),
-})
-
-interface SafetyQualificationUpdateDialogProps {
- open: boolean
- onOpenChange: (open: boolean) => void
- registrationId?: number
- vendorName?: string
- currentContent?: string | null
- onSuccess?: () => void
-}
-
-export function SafetyQualificationUpdateDialog({
- open,
- onOpenChange,
- registrationId,
- vendorName,
- currentContent,
- onSuccess,
-}: SafetyQualificationUpdateDialogProps) {
- const [isLoading, setIsLoading] = React.useState(false)
-
- const form = useForm<z.infer<typeof formSchema>>({
- resolver: zodResolver(formSchema),
- defaultValues: {
- safetyQualificationContent: currentContent || "",
- },
- })
-
- // 폼 값 초기화
- React.useEffect(() => {
- if (open) {
- form.reset({
- safetyQualificationContent: currentContent || "",
- })
- }
- }, [open, currentContent, form])
-
- async function onSubmit(values: z.infer<typeof formSchema>) {
- if (!registrationId) {
- toast.error("등록 ID가 없습니다.")
- return
- }
-
- setIsLoading(true)
- try {
- const result = await updateSafetyQualification(
- registrationId,
- values.safetyQualificationContent
- )
-
- if (result.success) {
- toast.success("안전적격성 평가가 등록되었습니다.")
- onOpenChange(false)
- onSuccess?.()
- } else {
- toast.error(result.error || "안전적격성 평가 등록에 실패했습니다.")
- }
- } catch (error) {
- console.error("안전적격성 평가 등록 오류:", error)
- toast.error("안전적격성 평가 등록 중 오류가 발생했습니다.")
- } finally {
- setIsLoading(false)
- }
- }
-
- return (
- <Dialog open={open} onOpenChange={onOpenChange}>
- <DialogContent className="w-[400px] sm:w-[540px] max-h-[90vh] overflow-y-auto">
- <DialogHeader>
- <DialogTitle>안전적격성 평가 입력</DialogTitle>
- <DialogDescription>
- {vendorName && `${vendorName}의 `}안전적격성 평가 내용을 입력해주세요.
- </DialogDescription>
- </DialogHeader>
-
- <Form {...form}>
- <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-6 mt-6">
- <FormField
- control={form.control}
- name="safetyQualificationContent"
- render={({ field }) => (
- <FormItem>
- <FormLabel>안전적격성 평가 내용</FormLabel>
- <FormControl>
- <Textarea
- placeholder="안전적격성 평가 결과 및 내용을 입력해주세요..."
- className="min-h-[200px]"
- {...field}
- />
- </FormControl>
- <FormMessage />
- </FormItem>
- )}
- />
-
- <div className="flex justify-end space-x-2">
- <Button
- type="button"
- variant="outline"
- onClick={() => onOpenChange(false)}
- disabled={isLoading}
- >
- 취소
- </Button>
- <Button type="submit" disabled={isLoading}>
- {isLoading ? "저장 중..." : "저장"}
- </Button>
- </div>
- </form>
- </Form>
- </DialogContent>
- </Dialog>
- )
-}