'use client'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { Label } from '@/components/ui/label'; import { Input } from '@/components/ui/input'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Switch } from '@/components/ui/switch'; import { Badge } from '@/components/ui/badge'; import { Plus, Trash2 } from 'lucide-react'; import { toast } from 'sonner'; import type { OptionColumn } from '../types'; interface AttributeSubTab { id: string; label: string; key: string; order: number; isDefault?: boolean; } interface ColumnManageDialogProps { isOpen: boolean; setIsOpen: (open: boolean) => void; managingColumnType: string | null; attributeSubTabs: AttributeSubTab[]; attributeColumns: Record; setAttributeColumns: React.Dispatch>>; newColumnName: string; setNewColumnName: (name: string) => void; newColumnKey: string; setNewColumnKey: (key: string) => void; newColumnType: 'text' | 'number'; setNewColumnType: (type: 'text' | 'number') => void; newColumnRequired: boolean; setNewColumnRequired: (required: boolean) => void; } export function ColumnManageDialog({ isOpen, setIsOpen, managingColumnType, attributeSubTabs, attributeColumns, setAttributeColumns, newColumnName, setNewColumnName, newColumnKey, setNewColumnKey, newColumnType, setNewColumnType, newColumnRequired, setNewColumnRequired, }: ColumnManageDialogProps) { return ( { setIsOpen(open); if (!open) { setNewColumnName(''); setNewColumnKey(''); setNewColumnType('text'); setNewColumnRequired(false); } }}> 칼럼 관리 {managingColumnType === 'units' && '단위'} {managingColumnType === 'materials' && '재질'} {managingColumnType === 'surface' && '표면처리'} {managingColumnType && !['units', 'materials', 'surface'].includes(managingColumnType) && (attributeSubTabs.find(t => t.key === managingColumnType)?.label || '속성')} {' '}에 추가 칼럼을 설정합니다 (예: 규격 안에 속성/값/단위 나누기)
{/* 기존 칼럼 목록 */} {managingColumnType && attributeColumns[managingColumnType]?.length > 0 && (

설정된 칼럼

{attributeColumns[managingColumnType].map((column, idx) => (
{idx + 1}

{column.name}

키: {column.key} | 타입: {column.type === 'text' ? '텍스트' : '숫자'} {column.required && ' | 필수'}

))}
)} {/* 새 칼럼 추가 폼 */}

새 칼럼 추가

setNewColumnName(e.target.value)} placeholder="예: 속성, 값, 단위" />
setNewColumnKey(e.target.value)} placeholder="예: property, value, unit" />
); }