umami/src/components/hooks/queries/useWebsiteEvents.ts

41 lines
1 KiB
TypeScript
Raw Normal View History

2024-03-29 23:56:19 +00:00
import { useDateRange, useNavigation, useTimezone } from 'components/hooks';
import { zonedTimeToUtc } from 'date-fns-tz';
2024-04-23 18:19:05 +00:00
import useApi from './useApi';
2024-04-23 18:19:05 +00:00
export function useWebsiteEvents(websiteId: string, options?: { [key: string]: string }) {
const { get, useQuery } = useApi();
2024-03-29 23:56:19 +00:00
const [dateRange] = useDateRange(websiteId);
const { startDate, endDate, unit, offset } = dateRange;
const { timezone } = useTimezone();
const {
2024-04-23 18:19:05 +00:00
query: { url, referrer, os, browser, device, country, region, city, title, event },
2024-03-29 23:56:19 +00:00
} = useNavigation();
const params = {
startAt: +zonedTimeToUtc(startDate, timezone),
endAt: +zonedTimeToUtc(endDate, timezone),
unit,
offset,
url,
2024-04-23 18:19:05 +00:00
referrer,
os,
browser,
device,
country,
region,
city,
title,
timezone,
2024-03-29 23:56:19 +00:00
event,
};
return useQuery({
2024-04-23 18:19:05 +00:00
queryKey: ['events', { websiteId, ...params }],
queryFn: () => get(`/websites/${websiteId}/events`, params),
enabled: !!websiteId,
...options,
});
}
export default useWebsiteEvents;