LeLab / src /hooks /useDatasets.ts
GitHub CI
Sync from leLab @ 8420275bdc324fa9e71046ce66c3ea3dd59e60e2
018306c
import { useCallback, useEffect, useState } from "react";
import { useApi } from "@/contexts/ApiContext";
import { DatasetItem, listDatasets } from "@/lib/replayApi";
export const useDatasets = () => {
const { baseUrl, fetchWithHeaders } = useApi();
const [datasets, setDatasets] = useState<DatasetItem[]>([]);
const [loading, setLoading] = useState(true);
const refresh = useCallback(() => {
setLoading(true);
listDatasets(baseUrl, fetchWithHeaders)
.then(setDatasets)
.catch(() => setDatasets([]))
.finally(() => setLoading(false));
}, [baseUrl, fetchWithHeaders]);
useEffect(() => {
refresh();
}, [refresh]);
return { datasets, loading, refresh };
};