refactor: update state management in UpdateDialogPopup and related components

- Replaced the use of `useAppDispatch` and `setUpdateState` with `useAppUpdateState` for better state handling in `UpdateDialogPopup`.
- Updated `UpdateAppButton` to reference the new state structure.
- Changed import paths for `HelpTooltip` in `AgentModal` and `ModelSetting` to maintain consistency across components.
- Refactored API key management in `ApiService` to utilize `cacheService` instead of `window.keyv` for improved performance and reliability.
This commit is contained in:
fullex 2025-12-09 11:08:53 +08:00
parent 74ca4443d6
commit 361aa87838
5 changed files with 11 additions and 11 deletions

View File

@ -1,7 +1,7 @@
import { loggerService } from '@logger'
import { TopView } from '@renderer/components/TopView'
import { handleSaveData, useAppDispatch } from '@renderer/store'
import { setUpdateState } from '@renderer/store/runtime'
import { useAppUpdateState } from '@renderer/hooks/useAppUpdate'
import { handleSaveData } from '@renderer/store'
import { Button, Modal } from 'antd'
import type { ReleaseNoteInfo, UpdateInfo } from 'builder-util-runtime'
import { useEffect, useState } from 'react'
@ -23,8 +23,7 @@ const PopupContainer: React.FC<Props> = ({ releaseInfo, resolve }) => {
const { t } = useTranslation()
const [open, setOpen] = useState(true)
const [isInstalling, setIsInstalling] = useState(false)
const dispatch = useAppDispatch()
const { updateAppUpdateState } = useAppUpdateState()
useEffect(() => {
if (releaseInfo) {
logger.info('Update dialog opened', { version: releaseInfo.version })
@ -53,7 +52,7 @@ const PopupContainer: React.FC<Props> = ({ releaseInfo, resolve }) => {
}
const onIgnore = () => {
dispatch(setUpdateState({ ignore: true }))
updateAppUpdateState({ ignore: true })
setOpen(false)
}

View File

@ -1,6 +1,6 @@
import { HelpTooltip } from '@cherrystudio/ui'
import { loggerService } from '@logger'
import { ErrorBoundary } from '@renderer/components/ErrorBoundary'
import { HelpTooltip } from '@renderer/components/TooltipIcons'
import { TopView } from '@renderer/components/TopView'
import { permissionModeCards } from '@renderer/config/agent'
import { useAgents } from '@renderer/hooks/agents/useAgents'

View File

@ -20,7 +20,7 @@ const UpdateAppButton: FC = () => {
return null
}
if (update.ignore) {
if (appUpdateState.ignore) {
return null
}

View File

@ -1,4 +1,4 @@
import { HelpTooltip } from '@renderer/components/TooltipIcons'
import { HelpTooltip } from '@cherrystudio/ui'
import SelectAgentBaseModelButton from '@renderer/pages/home/components/SelectAgentBaseModelButton'
import type { AgentBaseWithId, ApiModel, UpdateAgentFunctionUnion } from '@renderer/types'
import { useTranslation } from 'react-i18next'

View File

@ -1,6 +1,7 @@
/**
* API调用函数
*/
import { cacheService } from '@data/CacheService'
import { preferenceService } from '@data/PreferenceService'
import { loggerService } from '@logger'
import type { AiSdkMiddlewareConfig } from '@renderer/aiCore/middleware/AiSdkMiddlewareBuilder'
@ -467,9 +468,9 @@ function getRotatedApiKey(provider: Provider): string {
return keys[0]
}
const lastUsedKey = window.keyv.get(keyName)
const lastUsedKey = cacheService.get(keyName) as string
if (!lastUsedKey) {
window.keyv.set(keyName, keys[0])
cacheService.set(keyName, keys[0])
return keys[0]
}
@ -485,7 +486,7 @@ function getRotatedApiKey(provider: Provider): string {
const nextIndex = (currentIndex + 1) % keys.length
const nextKey = keys[nextIndex]
window.keyv.set(keyName, nextKey)
cacheService.set(keyName, nextKey)
return nextKey
}