From 84b07af246b825ead72343ea371a9745793e64d2 Mon Sep 17 00:00:00 2001 From: smanylov Date: Wed, 6 May 2026 19:12:37 +0700 Subject: [PATCH] fix pagination --- src/app/hooks/react-query/useHistoryView.ts | 5 +++-- src/app/ui/tracking-page/tracking-history-view.tsx | 8 +++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/app/hooks/react-query/useHistoryView.ts b/src/app/hooks/react-query/useHistoryView.ts index 6538b46..e61fefc 100644 --- a/src/app/hooks/react-query/useHistoryView.ts +++ b/src/app/hooks/react-query/useHistoryView.ts @@ -22,7 +22,7 @@ export interface UseHistoryView { export const useHistoryView = (page: number, size: number) => { return useQuery({ - queryKey: ['violationStatistic'], + queryKey: ['violationStatistic', page, size], queryFn: () => { return fetchHistoryView(page, size) }, @@ -32,6 +32,7 @@ export const useHistoryView = (page: number, size: number) => { } return data; }, - retry: false + retry: false, + placeholderData: (previousData) => previousData // для оптимистичных обновлений }); }; \ No newline at end of file diff --git a/src/app/ui/tracking-page/tracking-history-view.tsx b/src/app/ui/tracking-page/tracking-history-view.tsx index 21f11d1..2455259 100644 --- a/src/app/ui/tracking-page/tracking-history-view.tsx +++ b/src/app/ui/tracking-page/tracking-history-view.tsx @@ -32,7 +32,7 @@ export function TrackingHistoryView() { const tableData = apiResponse?.history || []; const totalItems = apiResponse?.history.length || 0; - const totalPages = Math.ceil(totalItems / pagination.pageSize); + const totalPages = apiResponse?.totalPages || 0; const viewport = useViewport(); @@ -244,6 +244,12 @@ export function TrackingHistoryView() { getPaginationRowModel: getPaginationRowModel(), }); + useEffect(() => { + if (tableData.length === 0 && pagination.pageIndex > 0 && totalPages > 0) { + setPagination(prev => ({ ...prev, pageIndex: Math.max(0, totalPages - 1) })); + } + }, [tableData, pagination.pageIndex, totalPages]); + return (