1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import type { ReactQueryOptions } from '@/lib/types';
import { useApi } from '../useApi';
import { useDateParameters } from '../useDateParameters';
import { useFilterParameters } from '../useFilterParameters';
export interface WebsitePageviewsData {
pageviews: { x: string; y: number }[];
sessions: { x: string; y: number }[];
}
export function useWebsitePageviewsQuery(
{ websiteId, compare }: { websiteId: string; compare?: string },
options?: ReactQueryOptions<WebsitePageviewsData>,
) {
const { get, useQuery } = useApi();
const { startAt, endAt, unit, timezone } = useDateParameters();
const queryParams = useFilterParameters();
return useQuery<WebsitePageviewsData>({
queryKey: [
'websites:pageviews',
{ websiteId, compare, startAt, endAt, unit, timezone, ...queryParams },
],
queryFn: () =>
get(`/websites/${websiteId}/pageviews`, {
compare,
startAt,
endAt,
unit,
timezone,
...queryParams,
}),
enabled: !!websiteId,
...options,
});
}
|