import { useState } from 'react'; import { clone } from 'lodash'; import { invoke } from '@tauri-apps/api'; import { CHAT_MODEL_JSON, readJSON, writeJSON } from '@/utils'; import useInit from '@/hooks/useInit'; export default function useChatModel(key: string) { const [modelJson, setModelJson] = useState>({}); useInit(async () => { const data = await readJSON(CHAT_MODEL_JSON, { name: 'ChatGPT Model', [key]: [] }); setModelJson(data); }); const modelSet = async (data: Record[]) => { const oData = clone(modelJson); oData[key] = data; await writeJSON(CHAT_MODEL_JSON, oData); await invoke('window_reload', { label: 'core' }); setModelJson(oData); } return { modelJson, modelSet, modelData: modelJson?.[key] || [] } }