import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query'; import { useApi } from './useApi'; import { useNavigation } from './useNavigation'; import { PageResult } from '@/lib/types'; export function usePagedQuery({ queryKey, queryFn, ...options }: Omit< UseQueryOptions, TError, PageResult, readonly unknown[]>, 'queryFn' | 'queryKey' > & { queryKey: readonly unknown[]; queryFn: (params?: object) => Promise> | PageResult; }): UseQueryResult, TError> { const { query: { page, search }, } = useNavigation(); const { useQuery } = useApi(); return useQuery, TError>({ queryKey: [...queryKey, page, search] as const, queryFn: () => queryFn({ page, search }), ...options, }); }