Added query hooks for website events and metrics.

This commit is contained in:
Mike Cao 2024-01-30 18:25:41 -08:00
parent c5046d0043
commit c7df1063ac
5 changed files with 94 additions and 57 deletions

View file

@ -11,6 +11,8 @@ export * from './queries/useUser';
export * from './queries/useUsers';
export * from './queries/useWebsite';
export * from './queries/useWebsites';
export * from './queries/useWebsiteEvents';
export * from './queries/useWebsiteMetrics';
export * from './useCountryNames';
export * from './useDateRange';
export * from './useDocumentClick';

View file

@ -0,0 +1,19 @@
import useApi from './useApi';
import { UseQueryOptions } from '@tanstack/react-query';
export function useWebsiteEvents(
websiteId: string,
params?: { [key: string]: any },
options?: Omit<UseQueryOptions, 'queryKey' | 'queryFn'>,
) {
const { get, useQuery } = useApi();
return useQuery({
queryKey: ['events', { ...params }],
queryFn: () => get(`/websites/${websiteId}/events`, { ...params }),
enabled: !!websiteId,
...options,
});
}
export default useWebsiteEvents;

View file

@ -0,0 +1,34 @@
import useApi from './useApi';
import { UseQueryOptions } from '@tanstack/react-query';
export function useWebsiteMetrics(
websiteId: string,
params?: { [key: string]: any },
options?: Omit<UseQueryOptions, 'queryKey' | 'queryFn'>,
) {
const { get, useQuery } = useApi();
return useQuery({
queryKey: [
'websites:metrics',
{
websiteId,
...params,
},
],
queryFn: async () => {
const filters = { ...params };
filters[params.type] = undefined;
const data = await get(`/websites/${websiteId}/metrics`, {
...filters,
});
return data;
},
...options,
});
}
export default useWebsiteMetrics;