diff --git a/app/share/[id]/page.tsx b/app/share/[id]/page.tsx index d5692173..730f70dc 100644 --- a/app/share/[id]/page.tsx +++ b/app/share/[id]/page.tsx @@ -989,15 +989,16 @@ export default function SharePage() { const openTaskDetailRenameDialog = (asset: { id: string; fileName?: string }) => { const currentName = asset.fileName || '' - const dotIndex = currentName.lastIndexOf('.') - const baseName = dotIndex > 0 ? currentName.slice(0, dotIndex) : currentName - const extension = dotIndex > 0 ? currentName.slice(dotIndex) : '' + // 预览行文件名不是包内条目名:剥掉 .webp 与历史「源名-preview」尾巴, + // 扩展名由服务端按包内条目自动保留,前端不预设(预设 .webp 会误触扩展名校验)。 + let displayBase = currentName.replace(/\.webp$/i, '') + displayBase = displayBase.replace(/-preview$/i, '') setRenameDialogState({ assetId: asset.id, currentName, - baseName, - extension, - value: baseName, + baseName: displayBase, + extension: '', + value: displayBase, error: null, saving: false, }) @@ -1023,7 +1024,7 @@ export default function SharePage() { assetId: renameDialogState.assetId, kind: 'rename', label: `重命名为 ${nextBaseName}${renameDialogState.extension}`, - newFileName: nextBaseName + renameDialogState.extension, + newFileName: nextBaseName, }) showToast('重命名已加入待应用清单', { variant: 'success' }) setRenameDialogState(null) @@ -1853,7 +1854,7 @@ export default function SharePage() { aria-label="新文件名" /> - {renameDialogState.extension || '(无扩展名)'} + 保存后自动沿用原扩展名 {renameDialogState.error && (