From 02a956933084992f2db508a00251f64933137ddd Mon Sep 17 00:00:00 2001 From: Anton Standrik Date: Thu, 26 Jun 2025 21:43:06 +0300 Subject: [PATCH 1/3] fix: make operations page_size to 20 --- src/containers/Operations/useOperationsInfiniteQuery.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/containers/Operations/useOperationsInfiniteQuery.ts b/src/containers/Operations/useOperationsInfiniteQuery.ts index d6d0f6aa6..e89d04b57 100644 --- a/src/containers/Operations/useOperationsInfiniteQuery.ts +++ b/src/containers/Operations/useOperationsInfiniteQuery.ts @@ -18,7 +18,7 @@ const DEFAULT_SCROLL_MARGIN = 100; export function useOperationsInfiniteQuery({ database, kind, - pageSize = 10, + pageSize = 20, searchValue, scrollContainerRef, }: UseOperationsInfiniteQueryProps) { From bbcd3268aabd0e9de3f9851a0b461642e0d7b660 Mon Sep 17 00:00:00 2001 From: Anton Standrik Date: Wed, 2 Jul 2025 14:14:45 +0300 Subject: [PATCH 2/3] fix: correct operations count --- src/containers/Operations/useOperationsInfiniteQuery.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/containers/Operations/useOperationsInfiniteQuery.ts b/src/containers/Operations/useOperationsInfiniteQuery.ts index e89d04b57..16b142db0 100644 --- a/src/containers/Operations/useOperationsInfiniteQuery.ts +++ b/src/containers/Operations/useOperationsInfiniteQuery.ts @@ -63,8 +63,14 @@ export function useOperationsInfiniteQuery({ // Check after data updates React.useLayoutEffect(() => { if (!isFetchingNextPage) { - checkAndLoadMorePages(); + // RAF to ensure browser has completed layout and paint + const raf = requestAnimationFrame(() => { + checkAndLoadMorePages(); + }); + return () => cancelAnimationFrame(raf); } + + return undefined; }, [data, isFetchingNextPage, checkAndLoadMorePages]); // Scroll handler for infinite scrolling From 9370495236e19534800923169d1931409af873e7 Mon Sep 17 00:00:00 2001 From: Anton Standrik Date: Wed, 2 Jul 2025 14:20:19 +0300 Subject: [PATCH 3/3] fix: move to constants --- src/containers/Operations/useOperationsInfiniteQuery.ts | 4 ++-- src/store/reducers/operations.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/containers/Operations/useOperationsInfiniteQuery.ts b/src/containers/Operations/useOperationsInfiniteQuery.ts index 16b142db0..d6d5ed952 100644 --- a/src/containers/Operations/useOperationsInfiniteQuery.ts +++ b/src/containers/Operations/useOperationsInfiniteQuery.ts @@ -2,7 +2,7 @@ import React from 'react'; import {throttle} from 'lodash'; -import {operationsApi} from '../../store/reducers/operations'; +import {DEFAULT_PAGE_SIZE, operationsApi} from '../../store/reducers/operations'; import type {OperationKind} from '../../types/api/operations'; interface UseOperationsInfiniteQueryProps { @@ -18,7 +18,7 @@ const DEFAULT_SCROLL_MARGIN = 100; export function useOperationsInfiniteQuery({ database, kind, - pageSize = 20, + pageSize = DEFAULT_PAGE_SIZE, searchValue, scrollContainerRef, }: UseOperationsInfiniteQueryProps) { diff --git a/src/store/reducers/operations.ts b/src/store/reducers/operations.ts index 2d19b1683..dd65e13fe 100644 --- a/src/store/reducers/operations.ts +++ b/src/store/reducers/operations.ts @@ -8,7 +8,7 @@ import type { import {api} from './api'; -const DEFAULT_PAGE_SIZE = 20; +export const DEFAULT_PAGE_SIZE = 20; // Validate and normalize the response to ensure it has proper structure function validateOperationListResponse(data: TOperationList): TOperationList {