feat: 启动时自动恢复配置,无需每次手动保存

InitConfig 组件在应用挂载时从 localStorage 读取保存的 API Key/模式,自动调用 PUT /api/config 恢复后端设置
This commit is contained in:
qichi.liang
2026-05-20 18:27:46 +08:00
parent 7bf2f2e1ad
commit 5240505a2e
2 changed files with 27 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
import { useEffect } from 'react'
export default function InitConfig() {
useEffect(() => {
const openaiKey = localStorage.getItem('openai-key')
const deepseekKey = localStorage.getItem('deepseek-key')
const openaiBaseUrl = localStorage.getItem('openai-base-url')
const deepseekBaseUrl = localStorage.getItem('deepseek-base-url')
const aiMock = localStorage.getItem('ai-mock') ?? 'true'
const body: Record<string, string | undefined> = { aiMock }
if (openaiKey) body.openaiKey = openaiKey
if (deepseekKey) body.deepseekKey = deepseekKey
if (openaiBaseUrl) body.openaiBaseUrl = openaiBaseUrl
if (deepseekBaseUrl) body.deepseekBaseUrl = deepseekBaseUrl
fetch('/api/config', {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(body),
}).catch(() => {})
}, [])
return null
}

View File

@@ -3,6 +3,7 @@ import { createRoot } from 'react-dom/client'
import { RouterProvider } from 'react-router-dom'
import { QueryClientProvider } from '@tanstack/react-query'
import { ErrorBoundary } from './components/ErrorBoundary'
import InitConfig from './components/InitConfig'
import { router } from './router'
import { queryClient } from './lib/queryClient'
import './index.css'
@@ -11,6 +12,7 @@ createRoot(document.getElementById('root')!).render(
<StrictMode>
<ErrorBoundary>
<QueryClientProvider client={queryClient}>
<InitConfig />
<RouterProvider router={router} />
</QueryClientProvider>
</ErrorBoundary>