diff --git a/src/renderer/src/pages/translate/TranslatePage.tsx b/src/renderer/src/pages/translate/TranslatePage.tsx index e883955eb..76e50ce4b 100644 --- a/src/renderer/src/pages/translate/TranslatePage.tsx +++ b/src/renderer/src/pages/translate/TranslatePage.tsx @@ -134,15 +134,22 @@ const TranslatePage: FC = () => { ) // 控制复制行为 + const copy = useCallback( + async (text: string) => { + await navigator.clipboard.writeText(text) + setCopied(true) + }, + [setCopied] + ) + const onCopy = useCallback(async () => { try { - await navigator.clipboard.writeText(translatedContent) - setCopied(true) + await copy(translatedContent) } catch (error) { logger.error('Failed to copy text to clipboard:', error as Error) window.toast.error(t('common.copy_failed')) } - }, [setCopied, t, translatedContent]) + }, [copy, t, translatedContent]) /** * 翻译文本并保存历史记录,包含完整的异常处理,不会抛出异常 @@ -183,7 +190,7 @@ const TranslatePage: FC = () => { setTimeoutTimer( 'auto-copy', async () => { - await onCopy() + await copy(translated) }, 100 ) @@ -200,7 +207,7 @@ const TranslatePage: FC = () => { window.toast.error(t('translate.error.unknown') + ': ' + formatErrorMessage(e)) } }, - [autoCopy, dispatch, onCopy, setTimeoutTimer, setTranslatedContent, setTranslating, t, translating] + [autoCopy, copy, dispatch, setTimeoutTimer, setTranslatedContent, setTranslating, t, translating] ) // 控制翻译按钮是否可用