"use client"; import React from "react"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { ScrollArea } from "@/components/ui/scroll-area"; import { CheckCircle, AlertTriangle, Edit, Trash2 } from "lucide-react"; // νƒ€μž… import import { MappingDetailListProps } from "../types/redesigned"; /** * πŸ“ λ§€ν•‘ 상세 λͺ©λ‘ * - 각 맀핑별 상세 정보 * - νƒ€μž… λ³€ν™˜ 정보 * - κ°œλ³„ μˆ˜μ •/μ‚­μ œ κΈ°λŠ₯ */ const MappingDetailList: React.FC = ({ mappings, selectedMapping, onSelectMapping, onUpdateMapping, onDeleteMapping, }) => { return (
{(() => { console.log("πŸ” MappingDetailList - 전체 λ§€ν•‘ 데이터:", mappings); const validMappings = mappings.filter((mapping) => { const isValid = mapping.fromField && mapping.toField && mapping.fromField.columnName && mapping.toField.columnName; console.log(`πŸ” λ§€ν•‘ μœ νš¨μ„± 검사:`, { mapping, isValid, hasFromField: !!mapping.fromField, hasToField: !!mapping.toField, fromColumnName: mapping.fromField?.columnName, toColumnName: mapping.toField?.columnName, }); return isValid; }); if (validMappings.length === 0) { return (

λ§€ν•‘λœ ν•„λ“œκ°€ μ—†μŠ΅λ‹ˆλ‹€

INSERT μ•‘μ…˜μ΄ μžˆμ„ λ•Œ ν•„λ“œ 맀핑을 μ„€μ •ν•˜μ„Έμš”

); } return validMappings.map((mapping, index) => (
onSelectMapping(mapping.id)} > {/* λ§€ν•‘ 헀더 */}

{index + 1}. {mapping.fromField?.displayName || mapping.fromField?.columnName || "Unknown"} β†’{" "} {mapping.toField?.displayName || mapping.toField?.columnName || "Unknown"}

{mapping.isValid ? ( {mapping.fromField?.webType || "Unknown"} β†’ {mapping.toField?.webType || "Unknown"} ) : ( νƒ€μž… 뢈일치 )}
{/* λ³€ν™˜ κ·œμΉ™ */} {mapping.transformRule && (
λ³€ν™˜: {mapping.transformRule}
)} {/* 검증 λ©”μ‹œμ§€ */} {mapping.validationMessage && (
{mapping.validationMessage}
)}
)); })()}
); }; export default MappingDetailList;