Spaces:
Running
Running
| import { useEffect, useState } from "react"; | |
| import { addLogEntry } from "../../../../../../modules/logEntries"; | |
| import type { defaultSettings } from "../../../../../../modules/settings"; | |
| import { | |
| aiHordeDefaultApiKey, | |
| fetchHordeUserInfo, | |
| } from "../../../../../../modules/textGenerationWithHorde"; | |
| import type { HordeUserInfo } from "../types"; | |
| type Settings = typeof defaultSettings; | |
| export const useHordeUserInfo = (settings: Settings) => { | |
| const [hordeUserInfo, setHordeUserInfo] = useState<HordeUserInfo | null>( | |
| null, | |
| ); | |
| useEffect(() => { | |
| async function fetchUserInfo() { | |
| try { | |
| if ( | |
| settings.hordeApiKey && | |
| settings.hordeApiKey !== aiHordeDefaultApiKey | |
| ) { | |
| const userInfo = await fetchHordeUserInfo(settings.hordeApiKey); | |
| setHordeUserInfo(userInfo); | |
| } else { | |
| setHordeUserInfo(null); | |
| } | |
| } catch (error) { | |
| const errorMessage = | |
| error instanceof Error ? error.message : String(error); | |
| addLogEntry(`Error fetching AI Horde user info: ${errorMessage}`); | |
| setHordeUserInfo(null); | |
| } | |
| } | |
| if (settings.inferenceType === "horde") { | |
| fetchUserInfo(); | |
| } | |
| }, [settings.inferenceType, settings.hordeApiKey]); | |
| return hordeUserInfo; | |
| }; | |