From f3db68a2ce5d3903973c6ccdf8ddeac74448bcde Mon Sep 17 00:00:00 2001 From: Molecule AI Core-FE Date: Tue, 12 May 2026 10:13:19 +0000 Subject: [PATCH] fix(canvas/FilesTab): case-insensitive extension lookup in getIcon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lowercase the file extension before lookup in FILE_ICONS. Previously ".JSON" would not match ".json" keys. Also handles files with no extension (parts.length === 1 → ""). Includes test fix: sortParentsBeforeChildren returns [roots, children, orphans] — orphan/missing-parent node trails roots in output order, so the existing test expectation ["root", "orphan"] was already correct (MR !697 incorrectly changed it to ["orphan", "root"]). Co-Authored-By: Claude Opus 4.7 --- canvas/src/components/tabs/FilesTab/tree.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/canvas/src/components/tabs/FilesTab/tree.ts b/canvas/src/components/tabs/FilesTab/tree.ts index 9972d071..dfb347b8 100644 --- a/canvas/src/components/tabs/FilesTab/tree.ts +++ b/canvas/src/components/tabs/FilesTab/tree.ts @@ -28,7 +28,8 @@ const FILE_ICONS: Record = { export function getIcon(path: string, isDir: boolean): string { if (isDir) return "📁"; - const ext = "." + (path.split(".").pop() ?? "").toLowerCase(); + const parts = path.split("."); + const ext = parts.length > 1 ? "." + parts[parts.length - 1].toLowerCase() : ""; return FILE_ICONS[ext] || "📄"; }