UNPKG

@ledgerhq/live-common

Version:
38 lines (32 loc) 1.23 kB
import { useQueries } from "@tanstack/react-query"; import { fetchCurrencyChartData } from "../../cg-client/api"; import { QUERY_KEY } from "../utils/queryKeys"; import { REFETCH_TIME_ONE_MINUTE, BASIC_REFETCH } from "../utils/timers"; type UseLargeMoverChartDataParams = { ids: string[]; counterCurrency: string; range: string; }; export const useLargeMoverChartData = ({ ids, counterCurrency, range, }: UseLargeMoverChartDataParams) => { const chartQueries = useQueries({ queries: ids.map(id => ({ queryKey: [QUERY_KEY.CurrencyChartData, id, counterCurrency, range], queryFn: () => fetchCurrencyChartData({ id, counterCurrency, range }), refetchInterval: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH, staleTime: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH, })), }); const loadingChart = chartQueries.some(query => query.isLoading); const errorChart = chartQueries.every(query => query.isError); const chartDataArray = ids.map((id, index) => ({ idChartData: id, chartData: chartQueries[index]?.data, isLoading: chartQueries[index]?.isLoading || false, isError: chartQueries[index]?.isError || false, })); return { chartDataArray, loadingChart, errorChart }; };