From dab66e3d9a8abfe0ef7021e82dee81b5c5064c80 Mon Sep 17 00:00:00 2001 From: danji90 Date: Mon, 11 Oct 2021 17:06:17 +0200 Subject: [PATCH 1/2] feat: added reset method, resets hook state --- src/index.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index e3010bf..e572b87 100644 --- a/src/index.js +++ b/src/index.js @@ -108,13 +108,28 @@ const useLoadMoreOnScroll = props => { l(`User requested stop fetching`); setDoneFetching(true) } + const reset = () => { + l(`User reset to initial state`); + setLastFetchSize(0); + setDelta(999); + setScrollTop(0); + setScrollDirection('none'); + setHasScrollbar(false); + setDoneFetching(false); + setIsFetching(false); + setInitFetchCount(0); + setLastCount(0); + setStart(0); + setEnd(0); + } return { start, end, isFetching, doneFetching, setIsFetching, - forceDonefetching + forceDonefetching, + reset, }; }; From 97caf481924271aca9b8146bd0c2c8ab8705432f Mon Sep 17 00:00:00 2001 From: danji90 Date: Mon, 11 Oct 2021 18:51:59 +0200 Subject: [PATCH 2/2] fix: fixed lastFetchSize reset --- src/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index e572b87..c30b5cc 100644 --- a/src/index.js +++ b/src/index.js @@ -86,7 +86,10 @@ const useLoadMoreOnScroll = props => { }, [delta, doneFetching]); useEffect(() => { - if (lastFetchSize <= limit) { + if (lastFetchSize === 0) { + setStart(0); + setEnd(limit >= fetchSize ? fetchSize : limit); + } else if (lastFetchSize <= limit) { if (lastFetchSize - fetchSize !== lastFetchSize) { setStart(lastFetchSize - fetchSize); setEnd(lastFetchSize);