diff --git a/packages/hooks/src/useInfiniteScroll/__tests__/index.test.ts b/packages/hooks/src/useInfiniteScroll/__tests__/index.test.ts index 35df1e5054..586403c04d 100644 --- a/packages/hooks/src/useInfiniteScroll/__tests__/index.test.ts +++ b/packages/hooks/src/useInfiniteScroll/__tests__/index.test.ts @@ -248,4 +248,50 @@ describe('useInfiniteScroll', () => { Promise.resolve(); }); }); + + it('loading should be true when reload after loadMore', async () => { + const { result } = setup(mockRequest); + expect(result.current.loading).toBeTruthy(); + const { reload, loadMore } = result.current; + await act(async () => { + jest.advanceTimersByTime(1000); + }); + + expect(result.current.loading).toBeFalsy(); + + act(() => { + loadMore(); + reload(); + }); + expect(result.current.loading).toBeTruthy(); + + await act(async () => { + jest.advanceTimersByTime(1000); + }); + + expect(result.current.loading).toBeFalsy(); + }); + + it('loading should be true when reloadAsync after loadMore', async () => { + const { result } = setup(mockRequest); + expect(result.current.loading).toBeTruthy(); + const { reloadAsync, loadMore } = result.current; + await act(async () => { + jest.advanceTimersByTime(1000); + }); + + expect(result.current.loading).toBeFalsy(); + + act(() => { + loadMore(); + reloadAsync(); + }); + expect(result.current.loading).toBeTruthy(); + + await act(async () => { + jest.advanceTimersByTime(1000); + }); + + expect(result.current.loading).toBeFalsy(); + }); }); diff --git a/packages/hooks/src/useInfiniteScroll/index.tsx b/packages/hooks/src/useInfiniteScroll/index.tsx index abc0735dd5..c4fbc6b3c6 100644 --- a/packages/hooks/src/useInfiniteScroll/index.tsx +++ b/packages/hooks/src/useInfiniteScroll/index.tsx @@ -75,8 +75,15 @@ const useInfiniteScroll = ( return runAsync(finalData); }; - const reload = () => run(); - const reloadAsync = () => runAsync(); + const reload = () => { + setLoadingMore(false); + return run(); + }; + + const reloadAsync = () => { + setLoadingMore(false); + return runAsync(); + }; const scrollMethod = () => { const el = getTargetElement(target);