perf(ticket): paginate and cache detection previews

This commit is contained in:
2026-08-07 16:38:38 +05:30
parent d3069e1f25
commit 3d04995f97
5 changed files with 32 additions and 11 deletions

View File

@@ -2,6 +2,7 @@
import { useMemo } from 'react';
import {
keepPreviousData,
useInfiniteQuery,
useMutation,
useQuery,
@@ -28,6 +29,11 @@ import { extensionRequestKeys } from '../../extension-requests/queries/extension
const TICKET_TABLE_REFRESH_MS = 5 * 60 * 1000;
interface TicketDetectionsQueryOptions {
enabled?: boolean;
keepPreviousPage?: boolean;
}
interface UseTicketsQueryParams {
skip: number;
limit: number;
@@ -113,8 +119,9 @@ export function useTicketAssignmentsQuery(
export function useTicketDetectionsQuery(
videoId: string | undefined,
params: VideoDetectionsParams,
enabled = true,
options: TicketDetectionsQueryOptions = {},
) {
const { enabled = true, keepPreviousPage = false } = options;
const queryParams = useMemo(
() => ({
skip: params.skip ?? 0,
@@ -143,6 +150,7 @@ export function useTicketDetectionsQuery(
queryFn: () =>
videoService.getVideoDetections(videoId as string, queryParams),
enabled: Boolean(enabled && videoId),
placeholderData: keepPreviousPage ? keepPreviousData : undefined,
staleTime: Infinity,
});
}