"use client" import * as React from "react" import { zodResolver } from "@hookform/resolvers/zod" import { useForm, useFieldArray } from "react-hook-form" import { z } from "zod" import { toast } from "sonner" import { Plus, X, GripVertical, Trash2 } from "lucide-react" import { Button } from "@/components/ui/button" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from "@/components/ui/sheet" import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form" import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card" import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from "@/components/ui/accordion" import { Input } from "@/components/ui/input" import { Textarea } from "@/components/ui/textarea" import { Badge } from "@/components/ui/badge" import { Separator } from "@/components/ui/separator" import { ScrollArea } from "@/components/ui/scroll-area" import { getEsgEvaluationDetails } from "../service" interface EsgEvaluationDetailsSheetProps { open: boolean onOpenChange: (open: boolean) => void evaluationId: number | null } export function EsgEvaluationDetailsSheet({ open, onOpenChange, evaluationId, }: EsgEvaluationDetailsSheetProps) { const [evaluation, setEvaluation] = React.useState(null) const [isLoading, setIsLoading] = React.useState(false) console.log(evaluation) // 데이터 로드 React.useEffect(() => { if (open && evaluationId) { setIsLoading(true) getEsgEvaluationDetails(evaluationId) .then(setEvaluation) .catch((error) => { console.error('Error loading evaluation details:', error) toast.error('평가표 상세 정보를 불러오는데 실패했습니다.') }) .finally(() => setIsLoading(false)) } }, [open, evaluationId]) if (!open) return null return ( ESG 평가표 상세보기 평가표의 상세 정보와 평가항목들을 확인합니다. {isLoading ? (
로딩 중...
) : evaluation ? (
{/* 기본 정보 */} 기본 정보

{evaluation.serialNumber}

{evaluation.category}

{evaluation.inspectionItem}

{/* 평가항목들 */} 평가항목들 ({evaluation.evaluationItems?.length || 0}개) {evaluation.evaluationItems?.length > 0 ? ( {evaluation.evaluationItems.map((item: any, index: number) => (
{index + 1} {item.evaluationItem}
답변 옵션들 ({item.answerOptions?.length || 0}개)
{item.answerOptions?.map((option: any, optionIndex: number) => (
{optionIndex + 1} {option.answerText}
{Math.floor(Number(option.score))}점
))}
))}
) : (

등록된 평가항목이 없습니다.

)}
) : (
평가표를 찾을 수 없습니다.
)}
) }