From 1035019fc2b3ae0e6bed7c7596d85902ea522e6a Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Thu, 26 Sep 2024 19:15:26 +0800 Subject: [PATCH] feat: translate settings persist --- .../src/pages/translate/TranslatePage.tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/pages/translate/TranslatePage.tsx b/src/renderer/src/pages/translate/TranslatePage.tsx index ab05ea36..2f055427 100644 --- a/src/renderer/src/pages/translate/TranslatePage.tsx +++ b/src/renderer/src/pages/translate/TranslatePage.tsx @@ -2,11 +2,12 @@ import { CheckOutlined, SendOutlined, SettingOutlined, SwapOutlined, WarningOutl import { Navbar, NavbarCenter } from '@renderer/components/app/Navbar' import CopyIcon from '@renderer/components/Icons/CopyIcon' import { isLocalAi } from '@renderer/config/env' +import db from '@renderer/databases' import { useDefaultModel } from '@renderer/hooks/useAssistant' import { fetchTranslate } from '@renderer/services/api' import { getDefaultAssistant } from '@renderer/services/assistant' import { Assistant, Message } from '@renderer/types' -import { uuid } from '@renderer/utils' +import { runAsyncFunction, uuid } from '@renderer/utils' import { Button, Select, Space } from 'antd' import TextArea from 'antd/es/input/TextArea' import { isEmpty } from 'lodash' @@ -134,6 +135,13 @@ const TranslatePage: FC = () => { isEmpty(text) && setResult('') }, [text]) + useEffect(() => { + runAsyncFunction(async () => { + const targetLang = await db.settings.get({ id: 'translate:target:language' }) + targetLang && setTargetLanguage(targetLang.value) + }) + }, []) + const SettingButton = () => { if (isLocalAi) { return null @@ -181,7 +189,10 @@ const TranslatePage: FC = () => { style={{ width: 180 }} optionFilterProp="label" options={languageOptions} - onChange={(value) => setTargetLanguage(value)} + onChange={(value) => { + setTargetLanguage(value) + db.settings.put({ id: 'translate:target:language', value }) + }} optionRender={(option) => (