From 30ebb14023b668cadecdc1a8cb7c7a49daf6ed00 Mon Sep 17 00:00:00 2001 From: johngreen Date: Thu, 21 May 2026 19:21:30 +0900 Subject: [PATCH] =?UTF-8?q?fix(=ED=85=8C=EC=9D=B4=EB=B8=94=ED=83=80?= =?UTF-8?q?=EC=9E=85):=20=EC=9E=85=EB=A0=A5=20=ED=83=80=EC=9E=85=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EC=BD=98=20lucide=20=EB=A1=9C=20=ED=86=B5?= =?UTF-8?q?=EC=9D=BC=20=E2=80=94=20letter/symbol/emoji=20=ED=98=BC?= =?UTF-8?q?=EC=9E=AC=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 기존엔 iconChar 문자열에 'T'(글자) / '#'(기호) / '{}'(코드) / '📎'(emoji) 식으로 일관성 없게 표시. 카드 그리드에서 시각 노이즈 큼. - TypeColorConfig.iconChar(string) → Icon(LucideIcon) 으로 교체 - 13개 입력 타입 전부 lucide 아이콘 매핑 (Type/Hash/Calendar/Braces/Link2 등) - FALLBACK_TYPE_CONFIG export 해서 TypeOverviewStrip 의 legacy/unknown 도 같은 인터페이스 따름 Co-Authored-By: Claude Opus 4.7 (1M context) --- .../admin/table-type/ColumnDetailPanel.tsx | 12 ++-- .../admin/table-type/TypeOverviewStrip.tsx | 15 ++--- frontend/components/admin/table-type/types.ts | 57 ++++++++++++++----- 3 files changed, 52 insertions(+), 32 deletions(-) diff --git a/frontend/components/admin/table-type/ColumnDetailPanel.tsx b/frontend/components/admin/table-type/ColumnDetailPanel.tsx index 8b365576..d1556a11 100644 --- a/frontend/components/admin/table-type/ColumnDetailPanel.tsx +++ b/frontend/components/admin/table-type/ColumnDetailPanel.tsx @@ -183,12 +183,12 @@ export function ColumnDetailPanel({ isLegacy && "cursor-not-allowed", )} > - - {conf.iconChar} - + { const length = ratio * circumference; const dashArray = `${length} ${circumference - length}`; const dashOffset = -offset; offset += length; - const conf = isLegacy ? LEGACY_CONF : (INPUT_TYPE_COLORS[type] || { color: "text-muted-foreground", bgColor: "bg-muted" }); + const conf = isLegacy ? LEGACY_CONF : (INPUT_TYPE_COLORS[type] || FALLBACK_TYPE_CONFIG); return { type, dashArray, @@ -112,7 +105,7 @@ export function TypeOverviewStrip({ .filter((type) => (counts[type] || 0) > 0) .sort((a, b) => (counts[b] ?? 0) - (counts[a] ?? 0)) .map((type) => { - const conf = INPUT_TYPE_COLORS[type] || { color: "text-muted-foreground", bgColor: "bg-muted", label: type }; + const conf = INPUT_TYPE_COLORS[type] || { ...FALLBACK_TYPE_CONFIG, label: type }; const isActive = activeFilter === null || activeFilter === type; return (