import { keepPreviousData } from '@tanstack/react-query'; import type { ReactQueryOptions } from '@/lib/types'; import { useApi } from '../useApi'; import { useDateParameters } from '../useDateParameters'; import { useFilterParameters } from '../useFilterParameters'; export type WebsiteMetricsData = { x: string; y: number; }[]; export function useWebsiteMetricsQuery( websiteId: string, params: { type: string; limit?: number; search?: string }, options?: ReactQueryOptions, ) { const { get, useQuery } = useApi(); const { startAt, endAt, unit, timezone } = useDateParameters(); const filters = useFilterParameters(); return useQuery({ queryKey: [ 'websites:metrics', { websiteId, startAt, endAt, unit, timezone, ...filters, ...params, }, ], queryFn: async () => get(`/websites/${websiteId}/metrics`, { startAt, endAt, unit, timezone, ...filters, ...params, }), enabled: !!websiteId, placeholderData: keepPreviousData, ...options, }); }