diff --git a/site/src/api/queries/audits.ts b/site/src/api/queries/audits.ts index 3479c183b1..b469e7749b 100644 --- a/site/src/api/queries/audits.ts +++ b/site/src/api/queries/audits.ts @@ -19,5 +19,6 @@ export function paginatedAudits( q: payload, }); }, + prefetch: false, }; } diff --git a/site/src/hooks/usePaginatedQuery.ts b/site/src/hooks/usePaginatedQuery.ts index ba3206aa0e..182b1c3796 100644 --- a/site/src/hooks/usePaginatedQuery.ts +++ b/site/src/hooks/usePaginatedQuery.ts @@ -66,6 +66,12 @@ export type UsePaginatedQueryOptions< * closest valid page. */ onInvalidPageChange?: (params: InvalidPageParams) => void; + + /** + * Defaults to true. Allows you to disable prefetches for pages where making + * a request is very expensive. + */ + prefetch?: boolean; }; /** @@ -98,6 +104,7 @@ export function usePaginatedQuery< onInvalidPageChange, searchParams: outerSearchParams, queryFn: outerQueryFn, + prefetch = true, ...extraOptions } = options; @@ -148,7 +155,12 @@ export function usePaginatedQuery< const queryClient = useQueryClient(); const prefetchPage = useEffectEvent((newPage: number) => { + if (!prefetch) { + return; + } + const options = getQueryOptionsFromPage(newPage); + return queryClient.prefetchQuery(options); });