Spaces:
Running
Running
File size: 1,298 Bytes
1e22bf6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
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;
};
|