autumn-js
Version:
Autumn JS Library
66 lines (62 loc) • 1.56 kB
JavaScript
"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
};