diff --git a/src/renderer/src/components/app/Sidebar.tsx b/src/renderer/src/components/app/Sidebar.tsx index 08f4c1fa22..1474b80c00 100644 --- a/src/renderer/src/components/app/Sidebar.tsx +++ b/src/renderer/src/components/app/Sidebar.tsx @@ -137,7 +137,7 @@ const MainMenus: FC = () => { const { hideMinappPopup } = useMinappPopup() const { t } = useTranslation() const { pathname } = useLocation() - const { sidebarIcons } = useSettings() + const { sidebarIcons, defaultPaintingProvider } = useSettings() const { minappShow } = useRuntime() const navigate = useNavigate() const { theme } = useTheme() @@ -158,7 +158,7 @@ const MainMenus: FC = () => { const pathMap = { assistants: '/', agents: '/agents', - paintings: '/paintings', + paintings: `/paintings/${defaultPaintingProvider}`, translate: '/translate', minapp: '/apps', knowledge: '/knowledge', diff --git a/src/renderer/src/hooks/useSettings.ts b/src/renderer/src/hooks/useSettings.ts index 5eea046d00..66d9615ee3 100644 --- a/src/renderer/src/hooks/useSettings.ts +++ b/src/renderer/src/hooks/useSettings.ts @@ -6,13 +6,13 @@ import { setAutoCheckUpdate as _setAutoCheckUpdate, setLaunchOnBoot, setLaunchToTray, + setPinTopicsToTop, setSendMessageShortcut as _setSendMessageShortcut, setSidebarIcons, setTargetLanguage, setTheme, SettingsState, setTopicPosition, - setPinTopicsToTop, setTray as _setTray, setTrayOnClose, setWindowStyle diff --git a/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx b/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx index 241e135d1d..4ae0041faf 100644 --- a/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx +++ b/src/renderer/src/pages/paintings/PaintingsRoutePage.tsx @@ -1,5 +1,8 @@ -import { FC } from 'react' -import { Route, Routes } from 'react-router-dom' +import { useAppDispatch } from '@renderer/store' +import { setDefaultPaintingProvider } from '@renderer/store/settings' +import { PaintingProvider } from '@renderer/types' +import { FC, useEffect } from 'react' +import { Route, Routes, useParams } from 'react-router-dom' import AihubmixPage from './AihubmixPage' import DmxapiPage from './DmxapiPage' @@ -8,9 +11,20 @@ import SiliconPage from './SiliconPage' const Options = ['aihubmix', 'silicon', 'dmxapi'] const PaintingsRoutePage: FC = () => { + const params = useParams() + const provider = params['*'] + const dispatch = useAppDispatch() + + useEffect(() => { + console.debug('defaultPaintingProvider', provider) + if (provider && Options.includes(provider)) { + dispatch(setDefaultPaintingProvider(provider as PaintingProvider)) + } + }, [provider, dispatch]) + return ( - } /> + } /> } /> } /> } /> diff --git a/src/renderer/src/store/settings.ts b/src/renderer/src/store/settings.ts index a089a6a6f3..5a9c490f85 100644 --- a/src/renderer/src/store/settings.ts +++ b/src/renderer/src/store/settings.ts @@ -6,6 +6,7 @@ import { MathEngine, OpenAIServiceTier, OpenAISummaryText, + PaintingProvider, ThemeMode, TranslateLanguageVarious } from '@renderer/types' @@ -167,6 +168,7 @@ export interface SettingsState { backup: boolean knowledgeEmbed: boolean } + defaultPaintingProvider: PaintingProvider } export type MultiModelMessageStyle = 'horizontal' | 'vertical' | 'fold' | 'grid' @@ -298,7 +300,8 @@ export const initialState: SettingsState = { assistant: false, backup: false, knowledgeEmbed: false - } + }, + defaultPaintingProvider: 'aihubmix' } const settingsSlice = createSlice({ @@ -632,6 +635,9 @@ const settingsSlice = createSlice({ }, setNotificationSettings: (state, action: PayloadAction) => { state.notification = action.payload + }, + setDefaultPaintingProvider: (state, action: PayloadAction) => { + state.defaultPaintingProvider = action.payload } } }) @@ -730,7 +736,8 @@ export const { setEnableBackspaceDeleteModel, setOpenAISummaryText, setOpenAIServiceTier, - setNotificationSettings + setNotificationSettings, + setDefaultPaintingProvider } = settingsSlice.actions export default settingsSlice.reducer diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index afb02ad65d..f54f2a4be9 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -185,6 +185,8 @@ export type PaintingParams = { files: FileType[] } +export type PaintingProvider = 'aihubmix' | 'silicon' | 'dmxapi' + export interface Painting extends PaintingParams { model?: string prompt?: string