@@ -5,28 +5,34 @@ import PeriodList from "../PeriodList";
55import {
66 getWorkPeriodsError ,
77 getWorkPeriodsIsLoading ,
8+ getWorkPeriodsPagination ,
89 getWorkPeriodsSorting ,
9- getWorkPeriodsTotalCount ,
1010} from "store/selectors/workPeriods" ;
1111import { loadWorkPeriodsPage } from "store/thunks/workPeriods" ;
12+ import { useUpdateEffect } from "utils/hooks" ;
1213
1314/**
1415 * Displays working periods' list or a "Loading..." message or an error message.
1516 *
1617 * @returns {JSX.Element }
1718 */
1819const Periods = ( ) => {
20+ const pagination = useSelector ( getWorkPeriodsPagination ) ;
1921 const sorting = useSelector ( getWorkPeriodsSorting ) ;
20- const count = useSelector ( getWorkPeriodsTotalCount ) ;
2122 const error = useSelector ( getWorkPeriodsError ) ;
2223 const isLoading = useSelector ( getWorkPeriodsIsLoading ) ;
2324 const dispatch = useDispatch ( ) ;
2425
2526 // Load working periods' first page once when page loads and then
26- // only if sorting changes.
27+ // only if page size or sorting changes.
2728 useEffect ( ( ) => {
2829 dispatch ( loadWorkPeriodsPage ( 1 ) ) ;
29- } , [ sorting , dispatch ] ) ;
30+ } , [ dispatch , pagination . pageSize , sorting ] ) ;
31+
32+ // Load working periods' new page if page number changes.
33+ useUpdateEffect ( ( ) => {
34+ dispatch ( loadWorkPeriodsPage ( ) ) ;
35+ } , [ dispatch , pagination . pageNumber ] ) ;
3036
3137 return (
3238 < >
@@ -35,7 +41,7 @@ const Periods = () => {
3541 { ! isLoading && error && (
3642 < ContentMessage type = "error" > { error } </ ContentMessage >
3743 ) }
38- { ! isLoading && ! error && ! count && (
44+ { ! isLoading && ! error && ! pagination . totalCount && (
3945 < ContentMessage > No resource bookings found.</ ContentMessage >
4046 ) }
4147 </ >
0 commit comments