From 7f93ed9496115681a0bd217bdd3b231bafd61389 Mon Sep 17 00:00:00 2001 From: Peter van Vliet Date: Tue, 27 Jan 2026 12:33:39 +0100 Subject: [PATCH 1/3] #9: fixed double data load --- src/hooks/usePagination.ts | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/hooks/usePagination.ts b/src/hooks/usePagination.ts index 4c3884c..ab38f64 100644 --- a/src/hooks/usePagination.ts +++ b/src/hooks/usePagination.ts @@ -23,7 +23,10 @@ export function usePagination(getData: GetData, limit: number, deps: Depen if (data.length < limit) setIsFinished(true); - if (cancelled) return; + if (cancelled) + { + return; + } setIsLoading(false); @@ -41,37 +44,37 @@ export function usePagination(getData: GetData, limit: number, deps: Depen }, [getData, limit, page]); - const resetData = useCallback(() => + const resetData = () => { setData([]); setIsLoading(false); setIsFinished(false); setPage(0); - }, []); + }; - const next = useCallback(() => + const next = () => { setPage(page => page + 1); + }; - }, []); - - const previous = useCallback(() => + const previous = () => { setPage(page => page - 1); + }; - }, []); - - const reset = useCallback(() => + const reset = () => { + const mustLoad = page === 0; + resetData(); - loadData(); - }, []); + if (mustLoad) loadData(); + }; - useEffect(resetData, [resetData, limit, ...deps]); + useEffect(resetData, [limit, ...deps]); - useEffect(loadData, [getData, loadData, page]); + useEffect(loadData, [loadData, page]); return [data, isLoading, isFinished, next, previous, reset, setData] as const; } From 5f729872fe6e2d38275ee675b1658a0c6ce58247 Mon Sep 17 00:00:00 2001 From: Peter van Vliet Date: Tue, 27 Jan 2026 12:34:02 +0100 Subject: [PATCH 2/3] #9: optimized other hooks --- src/hooks/useLoadData.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/hooks/useLoadData.ts b/src/hooks/useLoadData.ts index e02e222..c334f9b 100644 --- a/src/hooks/useLoadData.ts +++ b/src/hooks/useLoadData.ts @@ -37,12 +37,11 @@ export function useLoadData(getData: GetData, deps: DependencyList = []) }, [getData]); - const refresh = useCallback(() => + const refresh = () => { setData(undefined); loadData(); - - }, [loadData]); + }; useEffect(loadData, [getData, ...deps]); From 28c43f395fe576a1bcc1344d2b0229d10bb56a12 Mon Sep 17 00:00:00 2001 From: Peter van Vliet Date: Tue, 27 Jan 2026 12:37:34 +0100 Subject: [PATCH 3/3] #9: bumped version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f6ab7ef..7baf203 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@maskingtech/react-toolkit", "private": false, - "version": "0.0.3", + "version": "0.0.4", "type": "module", "repository": { "url": "https://github.com/MaskingTechnology/react-toolkit"