| import { useState, useEffect } from "react"; |
| import { ModelConfig } from "../tabs/agentSettings/modelSelector/modelConfigForms/types"; |
| import { initializeDefaultModel } from "../utils/modelUtils"; |
| import { useSettingsStore } from "../../store"; |
| import { settingsAPI } from "../../views/api"; |
|
|
| |
| |
| |
| |
| |
| |
| export const useDefaultModel = () => { |
| const { config: uiSettings } = useSettingsStore(); |
| const [defaultModel, setDefaultModel] = useState<ModelConfig | undefined>( |
| initializeDefaultModel(uiSettings) |
| ); |
|
|
| useEffect(() => { |
| const fetchConfigInfo = async () => { |
| try { |
| const configFileInfo = await settingsAPI.getConfigInfo(); |
|
|
| |
| if (configFileInfo?.has_config_file && configFileInfo?.config_content) { |
| const configFileData = configFileInfo.config_content; |
| const modelFromConfigFile = initializeDefaultModel(configFileData); |
| setDefaultModel(modelFromConfigFile); |
| return; |
| } |
|
|
| |
| const modelFromUISettings = initializeDefaultModel(uiSettings); |
| setDefaultModel(modelFromUISettings); |
| } catch (error) { |
| console.warn("Failed to fetch config file info:", error); |
| |
| const modelFromUISettings = initializeDefaultModel(uiSettings); |
| setDefaultModel(modelFromUISettings); |
| } |
| }; |
|
|
| fetchConfigInfo(); |
| }, []); |
|
|
| return { defaultModel, setDefaultModel }; |
| }; |
|
|