From 08457055b05fb3b60bea91acbe1a9180fddd1bf2 Mon Sep 17 00:00:00 2001 From: Phantom <59059173+EurFelux@users.noreply.github.com> Date: Mon, 11 Aug 2025 14:34:26 +0800 Subject: [PATCH] fix(translate): don't use stale state when saving translate history (#9049) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(translate): 修复从store获取过时状态的问题 --- src/renderer/src/pages/translate/TranslatePage.tsx | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/renderer/src/pages/translate/TranslatePage.tsx b/src/renderer/src/pages/translate/TranslatePage.tsx index 4eca391c30..7ba09b87a6 100644 --- a/src/renderer/src/pages/translate/TranslatePage.tsx +++ b/src/renderer/src/pages/translate/TranslatePage.tsx @@ -12,7 +12,7 @@ import { useDefaultModel } from '@renderer/hooks/useAssistant' import useTranslate from '@renderer/hooks/useTranslate' import { estimateTextTokens } from '@renderer/services/TokenService' import { saveTranslateHistory, translateText } from '@renderer/services/TranslateService' -import store, { useAppDispatch, useAppSelector } from '@renderer/store' +import { useAppDispatch, useAppSelector } from '@renderer/store' import { setTranslating as setTranslatingAction } from '@renderer/store/runtime' import { setTranslatedContent as setTranslatedContentAction } from '@renderer/store/translate' import type { Model, TranslateHistory, TranslateLanguage } from '@renderer/types' @@ -117,8 +117,9 @@ const TranslatePage: FC = () => { setTranslating(true) + let translated try { - await translateText(text, actualTargetLanguage, throttle(setTranslatedContent, 100)) + translated = await translateText(text, actualTargetLanguage, throttle(setTranslatedContent, 100)) } catch (e) { logger.error('Failed to translate text', e as Error) window.message.error(t('translate.error.failed' + ': ' + (e as Error).message)) @@ -129,13 +130,7 @@ const TranslatePage: FC = () => { window.message.success(t('translate.complete')) try { - const translatedContent = store.getState().translate.translatedContent - await saveTranslateHistory( - text, - translatedContent, - actualSourceLanguage.langCode, - actualTargetLanguage.langCode - ) + await saveTranslateHistory(text, translated, actualSourceLanguage.langCode, actualTargetLanguage.langCode) } catch (e) { logger.error('Failed to save translate history', e as Error) window.message.error(t('translate.history.error.save') + ': ' + (e as Error).message)