UNPKG

autumn-js

Version:
66 lines (62 loc) 1.56 kB
"use client"; import { AutumnContext, useAutumnContext } from "./chunk-OYO7LPVB.mjs"; import { AutumnError } from "./chunk-QN2ALOVD.mjs"; // src/libraries/react/hooks/useAggregateEvents.tsx import useSWR from "swr"; var useAggregateEvents = (params) => { const context = useAutumnContext({ AutumnContext, name: "useAggregateEvents" }); const client = context.client; const fetcher = async () => { const res = await client.events.aggregate(params); if (res.error) { const err = new AutumnError({ message: res.error.message, code: res.error.code }); err.statusCode = res.statusCode; throw err; } return res.data; }; const startDate = params.customRange?.start ? new Date(params.customRange.start).toISOString().slice(0, 13) : void 0; const endDate = params.customRange?.end ? new Date(params.customRange.end).toISOString().slice(0, 13) : void 0; const { data, error, mutate } = useSWR( [ "eventAggregate", params.featureId, params.groupBy, params.range, startDate, endDate, params.binSize ], fetcher, { dedupingInterval: 2e3, revalidateOnFocus: false, revalidateOnReconnect: false, shouldRetryOnError: (error2) => error2.statusCode === 429, errorRetryCount: 3, refreshInterval: 0, ...params.swrConfig } ); return { list: data?.list, total: data?.total, isLoading: !error && !data, error, refetch: mutate }; }; export { useAggregateEvents };