fix(translate): don't use stale state when saving translate history (#9049)

fix(translate): 修复从store获取过时状态的问题
This commit is contained in:
Phantom 2025-08-11 14:34:26 +08:00 committed by GitHub
parent 5713a278cd
commit 08457055b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -12,7 +12,7 @@ import { useDefaultModel } from '@renderer/hooks/useAssistant'
import useTranslate from '@renderer/hooks/useTranslate' import useTranslate from '@renderer/hooks/useTranslate'
import { estimateTextTokens } from '@renderer/services/TokenService' import { estimateTextTokens } from '@renderer/services/TokenService'
import { saveTranslateHistory, translateText } from '@renderer/services/TranslateService' 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 { setTranslating as setTranslatingAction } from '@renderer/store/runtime'
import { setTranslatedContent as setTranslatedContentAction } from '@renderer/store/translate' import { setTranslatedContent as setTranslatedContentAction } from '@renderer/store/translate'
import type { Model, TranslateHistory, TranslateLanguage } from '@renderer/types' import type { Model, TranslateHistory, TranslateLanguage } from '@renderer/types'
@ -117,8 +117,9 @@ const TranslatePage: FC = () => {
setTranslating(true) setTranslating(true)
let translated
try { try {
await translateText(text, actualTargetLanguage, throttle(setTranslatedContent, 100)) translated = await translateText(text, actualTargetLanguage, throttle(setTranslatedContent, 100))
} catch (e) { } catch (e) {
logger.error('Failed to translate text', e as Error) logger.error('Failed to translate text', e as Error)
window.message.error(t('translate.error.failed' + ': ' + (e as Error).message)) window.message.error(t('translate.error.failed' + ': ' + (e as Error).message))
@ -129,13 +130,7 @@ const TranslatePage: FC = () => {
window.message.success(t('translate.complete')) window.message.success(t('translate.complete'))
try { try {
const translatedContent = store.getState().translate.translatedContent await saveTranslateHistory(text, translated, actualSourceLanguage.langCode, actualTargetLanguage.langCode)
await saveTranslateHistory(
text,
translatedContent,
actualSourceLanguage.langCode,
actualTargetLanguage.langCode
)
} catch (e) { } catch (e) {
logger.error('Failed to save translate history', e as Error) logger.error('Failed to save translate history', e as Error)
window.message.error(t('translate.history.error.save') + ': ' + (e as Error).message) window.message.error(t('translate.history.error.save') + ': ' + (e as Error).message)