HomePilot / frontend /src /ui /avatar /useAvatarPacks.js
HomePilot Deploy Bot
chore(hf): sync HomePilot to HF Space
921d377
Raw
History Blame Contribute Delete
905 Bytes
/**
* Hook: loads avatar pack availability from the backend.
*/
import { useEffect, useState, useCallback } from 'react';
import { fetchAvatarPacks } from './avatarApi';
export function useAvatarPacks(backendUrl, apiKey) {
const [data, setData] = useState(null);
const [error, setError] = useState(null);
const [loading, setLoading] = useState(false);
const refresh = useCallback(async () => {
if (!backendUrl)
return;
setLoading(true);
setError(null);
try {
const result = await fetchAvatarPacks(backendUrl, apiKey);
setData(result);
}
catch (e) {
setError(e?.message || String(e));
}
finally {
setLoading(false);
}
}, [backendUrl, apiKey]);
useEffect(() => {
refresh();
}, [refresh]);
return { data, error, loading, refresh };
}