@@ -23,7 +23,10 @@ export function usePagination<T>(getData: GetData<T>, limit: number, deps: Depen
2323
2424 if ( data . length < limit ) setIsFinished ( true ) ;
2525
26- if ( cancelled ) return ;
26+ if ( cancelled )
27+ {
28+ return ;
29+ }
2730
2831 setIsLoading ( false ) ;
2932
@@ -41,37 +44,37 @@ export function usePagination<T>(getData: GetData<T>, limit: number, deps: Depen
4144
4245 } , [ getData , limit , page ] ) ;
4346
44- const resetData = useCallback ( ( ) =>
47+ const resetData = ( ) =>
4548 {
4649 setData ( [ ] ) ;
4750 setIsLoading ( false ) ;
4851 setIsFinished ( false ) ;
4952 setPage ( 0 ) ;
5053
51- } , [ ] ) ;
54+ } ;
5255
53- const next = useCallback ( ( ) =>
56+ const next = ( ) =>
5457 {
5558 setPage ( page => page + 1 ) ;
59+ } ;
5660
57- } , [ ] ) ;
58-
59- const previous = useCallback ( ( ) =>
61+ const previous = ( ) =>
6062 {
6163 setPage ( page => page - 1 ) ;
64+ } ;
6265
63- } , [ ] ) ;
64-
65- const reset = useCallback ( ( ) =>
66+ const reset = ( ) =>
6667 {
68+ const mustLoad = page === 0 ;
69+
6770 resetData ( ) ;
68- loadData ( ) ;
6971
70- } , [ ] ) ;
72+ if ( mustLoad ) loadData ( ) ;
73+ } ;
7174
72- useEffect ( resetData , [ resetData , limit , ...deps ] ) ;
75+ useEffect ( resetData , [ limit , ...deps ] ) ;
7376
74- useEffect ( loadData , [ getData , loadData , page ] ) ;
77+ useEffect ( loadData , [ loadData , page ] ) ;
7578
7679 return [ data , isLoading , isFinished , next , previous , reset , setData ] as const ;
7780}
0 commit comments