/ concept-collection / benchcompress
Sign in
concept-collection / benchcompress
benchcompress / web-ui / src / hooks / useTimeseriesDataClient.ts
39 lines · 1.1 KBCodeBlameHistory
2f82381Update benchmark results from 2025-07-24 16:44:35 [skip ci]GitHub Actions Bot 1import { useEffect, useState } from "react";
2import { Dataset } from "../types";
3import { TimeseriesDataClient } from "./TimeseriesDataClient";
5interface UseTimeseriesDataClientResult {
6 client: TimeseriesDataClient | null;
7 error: string | null;
8}
10export const useTimeseriesDataClient = (
11 dataset: Dataset,
12 chunkSize: number = 1000,
13): UseTimeseriesDataClientResult => {
14 const [client, setClient] = useState<TimeseriesDataClient | null>(null);
15 const [error, setError] = useState<string | null>(null);
17 useEffect(() => {
18 const initClient = async () => {
19 try {
20 const newClient = await TimeseriesDataClient.create(
21 dataset.data_url_json || "",
22 dataset.data_url_raw || "",
23 chunkSize,
24 );
25 setClient(newClient);
26 setError(null);
27 } catch (err) {
28 setError(
29 err instanceof Error ? err.message : "Failed to initialize client",
30 );
31 setClient(null);
32 }
33 };
35 initClient();
36 }, [dataset.data_url_json, dataset.data_url_raw, chunkSize]);
38 return { client, error };
39};
moveopenescclose