From a5bfd8f3db0e8b581e2f63fd517221bf25b8bbab Mon Sep 17 00:00:00 2001 From: Phantom <59059173+EurFelux@users.noreply.github.com> Date: Fri, 5 Sep 2025 10:35:58 +0800 Subject: [PATCH] fix: handle multiple content source when pasting to translate input (#9919) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(translate): 处理粘贴事件时增加处理中状态检查 * fix(translate): 修复粘贴文本时未阻止默认行为的问题 添加event.preventDefault()以防止粘贴文本时触发默认行为 同时优化粘贴逻辑,优先处理文本内容 --- src/renderer/src/pages/translate/TranslatePage.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/pages/translate/TranslatePage.tsx b/src/renderer/src/pages/translate/TranslatePage.tsx index 6b31bae488..a73edc2116 100644 --- a/src/renderer/src/pages/translate/TranslatePage.tsx +++ b/src/renderer/src/pages/translate/TranslatePage.tsx @@ -612,9 +612,14 @@ const TranslatePage: FC = () => { // 粘贴上传文件 const onPaste = useCallback( async (event: React.ClipboardEvent) => { + event.preventDefault() + if (isProcessing) return setIsProcessing(true) logger.debug('event', event) - if (event.clipboardData?.files && event.clipboardData.files.length > 0) { + const text = event.clipboardData.getData('text') + if (!isEmpty(text)) { + setText(text) + } else if (event.clipboardData.files && event.clipboardData.files.length > 0) { event.preventDefault() const files = event.clipboardData.files const file = getSingleFile(files) as File @@ -659,7 +664,7 @@ const TranslatePage: FC = () => { } setIsProcessing(false) }, - [getSingleFile, processFile, t] + [getSingleFile, isProcessing, processFile, t] ) return (