fix: auto select model when finished download from starter screen (#4083)

This commit is contained in:
Faisal Amir 2024-11-22 12:52:37 +07:00 committed by GitHub
parent 4f70a5dff2
commit dd308db17b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,17 +1,20 @@
import { useState, useEffect } from 'react' import { useState, useEffect } from 'react'
import { useAtomValue } from 'jotai' import { useAtomValue, useSetAtom } from 'jotai'
import { isLocalEngine } from '@/utils/modelEngine' import { isLocalEngine } from '@/utils/modelEngine'
import { extensionManager } from '@/extension' import { extensionManager } from '@/extension'
import { downloadedModelsAtom } from '@/helpers/atoms/Model.atom' import {
downloadedModelsAtom,
selectedModelAtom,
} from '@/helpers/atoms/Model.atom'
import { threadsAtom } from '@/helpers/atoms/Thread.atom' import { threadsAtom } from '@/helpers/atoms/Thread.atom'
export function useStarterScreen() { export function useStarterScreen() {
const downloadedModels = useAtomValue(downloadedModelsAtom) const downloadedModels = useAtomValue(downloadedModelsAtom)
const threads = useAtomValue(threadsAtom) const threads = useAtomValue(threadsAtom)
const setSelectedModel = useSetAtom(selectedModelAtom)
const isDownloadALocalModel = downloadedModels.some((x) => const isDownloadALocalModel = downloadedModels.some((x) =>
isLocalEngine(x.engine) isLocalEngine(x.engine)
) )
@ -21,6 +24,9 @@ export function useStarterScreen() {
>([]) >([])
useEffect(() => { useEffect(() => {
if (isDownloadALocalModel) {
setSelectedModel(downloadedModels[0])
}
const getAllSettings = async () => { const getAllSettings = async () => {
const extensionsMenu: { const extensionsMenu: {
name?: string name?: string
@ -57,6 +63,7 @@ export function useStarterScreen() {
setExtensionHasSettings(extensionsMenu) setExtensionHasSettings(extensionsMenu)
} }
getAllSettings() getAllSettings()
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []) }, [])
const isAnyRemoteModelConfigured = extensionHasSettings.some( const isAnyRemoteModelConfigured = extensionHasSettings.some(