From 7fb6b1377b667e6eb04b9228bba38c4c8270987b Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Mon, 3 Nov 2025 15:12:58 +0800 Subject: [PATCH] feat: initialize painting model with first available option and update default provider to 'cherryin' --- .../src/pages/paintings/NewApiPage.tsx | 7 ++++++ .../pages/paintings/PaintingsRoutePage.tsx | 23 ++++++++++--------- src/renderer/src/store/migrate.ts | 1 + src/renderer/src/store/settings.ts | 2 +- src/renderer/src/types/index.ts | 2 +- 5 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/renderer/src/pages/paintings/NewApiPage.tsx b/src/renderer/src/pages/paintings/NewApiPage.tsx index 893736d4d2..526c39eb86 100644 --- a/src/renderer/src/pages/paintings/NewApiPage.tsx +++ b/src/renderer/src/pages/paintings/NewApiPage.tsx @@ -481,6 +481,13 @@ const NewApiPage: FC<{ Options: string[] }> = ({ Options }) => { } }, []) + // if painting.model is not set, set it to the first model in modelOptions + useEffect(() => { + if (!painting.model && modelOptions.length > 0) { + updatePaintingState({ model: modelOptions[0].value }) + } + }, [modelOptions, painting.model, updatePaintingState]) + return ( diff --git a/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx b/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx index a817334f6a..41b0c6f276 100644 --- a/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx +++ b/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx @@ -3,8 +3,10 @@ import { isNewApiProvider } from '@renderer/config/providers' import { useAllProviders } from '@renderer/hooks/useProvider' import { useAppDispatch } from '@renderer/store' import { setDefaultPaintingProvider } from '@renderer/store/settings' -import { PaintingProvider, SystemProviderId } from '@renderer/types' -import { FC, useEffect, useMemo } from 'react' +import { updateTab } from '@renderer/store/tabs' +import type { PaintingProvider, SystemProviderId } from '@renderer/types' +import type { FC } from 'react' +import { useEffect, useMemo } from 'react' import { Route, Routes, useParams } from 'react-router-dom' import AihubmixPage from './AihubmixPage' @@ -23,31 +25,30 @@ const PaintingsRoutePage: FC = () => { const provider = params['*'] const dispatch = useAppDispatch() const providers = useAllProviders() - const Options = useMemo(() => { - return [...BASE_OPTIONS, ...providers.filter((p) => isNewApiProvider(p)).map((p) => p.id)] - }, [providers]) + + const Options = useMemo(() => [...BASE_OPTIONS, ...providers.filter(isNewApiProvider).map((p) => p.id)], [providers]) + const newApiProviders = useMemo(() => providers.filter(isNewApiProvider), [providers]) useEffect(() => { logger.debug(`defaultPaintingProvider: ${provider}`) if (provider && Options.includes(provider)) { dispatch(setDefaultPaintingProvider(provider as PaintingProvider)) + dispatch(updateTab({ id: 'paintings', updates: { path: `/paintings/${provider}` } })) } }, [provider, dispatch, Options]) return ( - } /> + } /> } /> } /> } /> } /> } /> {/* new-api family providers are mounted dynamically below */} - {providers - .filter((p) => isNewApiProvider(p)) - .map((p) => ( - } /> - ))} + {newApiProviders.map((p) => ( + } /> + ))} ) } diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index 53bad6775d..8acb4605ef 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -2614,6 +2614,7 @@ const migrateConfig = { try { addProvider(state, 'sophnet') state.llm.providers = moveProvider(state.llm.providers, 'sophnet', 17) + state.settings.defaultPaintingProvider = 'cherryin' return state } catch (error) { logger.error('migrate 164 error', error as Error) diff --git a/src/renderer/src/store/settings.ts b/src/renderer/src/store/settings.ts index 887be370d2..06442f2f5d 100644 --- a/src/renderer/src/store/settings.ts +++ b/src/renderer/src/store/settings.ts @@ -388,7 +388,7 @@ export const initialState: SettingsState = { localBackupSyncInterval: 0, localBackupMaxBackups: 0, localBackupSkipBackupFile: false, - defaultPaintingProvider: 'zhipu', + defaultPaintingProvider: 'cherryin', s3: { endpoint: '', region: '', diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index 96d3e0fc7f..71942b4bc0 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -425,7 +425,7 @@ export type PaintingParams = { providerId?: string } -export type PaintingProvider = 'zhipu' | 'aihubmix' | 'silicon' | 'dmxapi' | 'new-api' +export type PaintingProvider = 'zhipu' | 'aihubmix' | 'silicon' | 'dmxapi' | 'new-api' | 'cherryin' export interface Painting extends PaintingParams { model?: string