From 18ef42a0764e67cdbf3edde2bbf2002f6db08b04 Mon Sep 17 00:00:00 2001 From: Darren Yu Date: Sun, 14 Sep 2025 09:55:45 +0800 Subject: [PATCH] fix(archive preview): archive file view with leading slashes display abnormally (in addition to #2865) --- .../Viewers/ArchivePreview/ArchivePreview.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/component/Viewers/ArchivePreview/ArchivePreview.tsx b/src/component/Viewers/ArchivePreview/ArchivePreview.tsx index e38fc0a..8b4ce49 100644 --- a/src/component/Viewers/ArchivePreview/ArchivePreview.tsx +++ b/src/component/Viewers/ArchivePreview/ArchivePreview.tsx @@ -122,17 +122,25 @@ const ArchivePreview = () => { res.files .filter((item) => item.is_directory) .forEach((item) => { - allDirs.add(item.name); - allItems.push(item); + let normalizedName = item.name && typeof item.name === "string" && item.name.startsWith("/") ? item.name.slice(1) : item.name; + allDirs.add(normalizedName); + allItems.push({ + ...item, + name: normalizedName, + }); }); // 文件项,并补齐缺失目录 res.files .filter((item) => !item.is_directory) .forEach((item) => { - allItems.push(item); + let normalizedName = item.name && typeof item.name === "string" && item.name.startsWith("/") ? item.name.slice(1) : item.name; + allItems.push({ + ...item, + name: normalizedName, + }); - const dirElements = item.name.split("/"); + const dirElements = normalizedName.split("/"); for (let i = 1; i < dirElements.length; i++) { const dirName = dirElements.slice(0, i).join("/"); if (!allDirs.has(dirName)) {