diff --git a/src/renderer/src/pages/translate/TranslatePage.tsx b/src/renderer/src/pages/translate/TranslatePage.tsx index 552da3ca03..9c829e0b2a 100644 --- a/src/renderer/src/pages/translate/TranslatePage.tsx +++ b/src/renderer/src/pages/translate/TranslatePage.tsx @@ -488,7 +488,7 @@ const TranslatePage: FC = () => { if (shouldOCR) { try { const ocrResult = await ocr(file) - setText(ocrResult.text) + setText(text + ocrResult.text) } finally { // do nothing when failed. because error should be handled inside } @@ -520,7 +520,7 @@ const TranslatePage: FC = () => { } else { try { const result = await window.api.fs.readText(file.path) - setText(result) + setText(text + result) } catch (e) { logger.error('Failed to read text file.', e as Error) window.message.error(t('translate.files.error.unknown') + ': ' + formatErrorMessage(e)) @@ -532,7 +532,7 @@ const TranslatePage: FC = () => { } } }, - [ocr, setText, t] + [ocr, setText, t, text] ) // 点击上传文件按钮 @@ -632,13 +632,12 @@ const TranslatePage: FC = () => { // 粘贴上传文件 const onPaste = useCallback( async (event: React.ClipboardEvent) => { - event.preventDefault() if (isProcessing) return setIsProcessing(true) logger.debug('event', event) - const text = event.clipboardData.getData('text') - if (!isEmpty(text)) { - setText(text) + const clipboardText = event.clipboardData.getData('text') + if (!isEmpty(clipboardText)) { + // depend default. this branch is only for preventing files when clipboard contains text } else if (event.clipboardData.files && event.clipboardData.files.length > 0) { event.preventDefault() const files = event.clipboardData.files @@ -684,7 +683,7 @@ const TranslatePage: FC = () => { } setIsProcessing(false) }, - [getSingleFile, isProcessing, processFile, setText, t] + [getSingleFile, isProcessing, processFile, t] ) return (