"use client"; import { Button, Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, Input, Table, TableBody, TableCell, TableHead, TableRow, } from "@common/components"; import { CodeSelect } from "@/entities/code/ui/code-select"; import type { VerificationTargetManagementResponse } from "@/entities/statistics/model/verification-target-management-interface"; import { verificationTargetManagementSchema, type VerificationTargetManagementFormData, } from "@/entities/statistics/model/verification-target-management-schema"; import { useEffect } from "react"; import { useForm, Controller } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import type { TabValue } from "./VerificationArticleManagement"; interface VerificationTargetDialogProps { tabValue: TabValue; open: boolean; onOpenChange: (open: boolean) => void; data: VerificationTargetManagementResponse | null; onSave: (data: VerificationTargetManagementResponse) => void; onDelete: (vrfcTrgtSn: number) => void; } export function VerificationTargetDialog({ tabValue, open, onOpenChange, data, onSave, onDelete, }: VerificationTargetDialogProps) { const { control, handleSubmit, reset, formState: { errors }, } = useForm({ resolver: zodResolver(verificationTargetManagementSchema), defaultValues: data || undefined, }); useEffect(() => { if (data && open) reset(data); }, [data, open, reset]); function onSubmit(formData: VerificationTargetManagementFormData) { if (!data) return; onSave({ ...data, ...formData, } as VerificationTargetManagementResponse); } function handleDelete() { if (data?.vrfcTrgtSn) { onDelete(data.vrfcTrgtSn); } } if (!data) return null; return ( 검증 항목 상세
통계항목 (
)} />
검증명 ( )} />
스키마명 (
)} />
테이블명 (
)} />
컬럼명 (
)} />
PK 키 (
)} />
{tabValue !== "IMR" && ( 중요도 계수(μ) (
field.onChange( e.target.value ? Number( e.target .value, ) : null, ) } placeholder="(0 ~ 1, 0.1 단위)" />
)} />
백분위수 기준값(pct) (
field.onChange( e.target.value ? Number( e.target .value, ) : null, ) } placeholder="(0 ~ 0.5, 0.1 단위)" />
)} />
)} {tabValue !== "IMR" && ( 스케일 조정 계수(A) (
field.onChange( e.target.value ? Number( e.target .value, ) : null, ) } placeholder="(0 ~ 1, 0.01 단위)" />
)} />
임계 계수(c) (
field.onChange( e.target.value ? Number( e.target .value, ) : null, ) } placeholder="(0 ~ 100, 1 단위)" />
)} />
)}
); }