From dfc1a9159051cd9fd83ea6f6887079cac0c0efa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Mon, 27 Jul 2026 16:34:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E7=B4=A0=E6=9D=90=E8=A1=8C?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E7=8A=B6=E6=80=81=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用显式条件分支构建互斥操作区 保持选择、上传、重命名和普通状态行为不变 --- .../image-editor/ImageCanvasAssetRowView.tsx | 94 ++++++++++--------- 1 file changed, 52 insertions(+), 42 deletions(-) diff --git a/src/components/image-editor/ImageCanvasAssetRowView.tsx b/src/components/image-editor/ImageCanvasAssetRowView.tsx index ef8a067c0..d22d5fa87 100644 --- a/src/components/image-editor/ImageCanvasAssetRowView.tsx +++ b/src/components/image-editor/ImageCanvasAssetRowView.tsx @@ -2,6 +2,7 @@ import { Check, Download, Pencil, Video, X } from 'lucide-react'; import type { Dispatch, MouseEvent as ReactMouseEvent, + ReactNode, SetStateAction, } from 'react'; import { useCallback, useEffect, useRef, useState } from 'react'; @@ -230,48 +231,57 @@ export function ImageCanvasAssetRowView({ }} /> ) : undefined; - const actions = isAssetSelectionMode ? undefined : isUploadingAsset ? ( -
- {asset.uploadMessage ?? '上传中'} - {Math.round(uploadProgress)}% -
- ) : isRenaming ? ( -
- commitAssetRename(asset)} - /> - setRenamingAsset(null)} - /> -
- ) : ( -
- { - closeMenu(); - onDownloadAsset(asset); - }} - /> - { - closeMenu(); - startRenamingAsset(asset); - }} - /> -
- ); + let actions: ReactNode; + if (isAssetSelectionMode) { + actions = undefined; + } else if (isUploadingAsset) { + actions = ( +
+ {asset.uploadMessage ?? '上传中'} + {Math.round(uploadProgress)}% +
+ ); + } else if (isRenaming) { + actions = ( +
+ commitAssetRename(asset)} + /> + setRenamingAsset(null)} + /> +
+ ); + } else { + actions = ( +
+ { + closeMenu(); + onDownloadAsset(asset); + }} + /> + { + closeMenu(); + startRenamingAsset(asset); + }} + /> +
+ ); + } return (