@@ -11,7 +11,7 @@ import _pull from "lodash/pull";
1111import { Fragment , useCallback , useEffect , useMemo , useState } from "react" ;
1212import { FormattedDate , FormattedMessage , FormattedTime } from "react-intl" ;
1313import { Link } from "react-router-dom" ;
14- import { useFilters , usePagination , useResizeColumns , useSortBy , useTable } from "react-table" ;
14+ import { useFilters , useResizeColumns , useSortBy , useTable } from "react-table" ;
1515import ConfigureColumnsModal from "../../../components/ConfigureColumnsModal/ConfigureColumnsModal" ;
1616import Dropdown from "../../../components/Dropdown/Dropdown" ;
1717import MapPane from "../../../components/EnhancedMap/MapPane/MapPane" ;
@@ -179,14 +179,12 @@ export const TaskReviewTable = (props) => {
179179 } ,
180180 ( taskId ) => setOpenComments ( taskId ) ,
181181 props . reviewCriteria ,
182- props . pageSize ,
183182 ) ,
184183 [
185184 updateChallengeFilterIds ,
186185 updateProjectFilterIds ,
187186 challengeFilterIds ,
188187 projectFilterIds ,
189- props . pageSize ,
190188 invertFieldsOnLength ,
191189 ] ,
192190 ) ;
@@ -222,21 +220,17 @@ export const TaskReviewTable = (props) => {
222220 filter . value !== null && filter . value !== undefined && filter . value !== "" ,
223221 )
224222 : [ ] ,
225- pageSize : props . pageSize ,
226- pageIndex : props . reviewCriteria ?. page || 0 ,
227223 } ) ,
228- [ initialSort , props . reviewCriteria ?. filters , props . reviewCriteria ?. page , props . pageSize ] ,
224+ [ initialSort , props . reviewCriteria ?. filters , props . reviewCriteria ?. page ] ,
229225 ) ;
230226
231227 const {
232228 getTableProps,
233229 getTableBodyProps,
234230 headerGroups,
235- page ,
231+ rows ,
236232 prepareRow,
237- state : { sortBy, filters, pageIndex, pageSize } ,
238- gotoPage,
239- setPageSize,
233+ state : { sortBy, filters } ,
240234 setAllFilters,
241235 setSortBy,
242236 } = useTable (
@@ -252,8 +246,6 @@ export const TaskReviewTable = (props) => {
252246 manualFilters : true ,
253247 manualPagination : true ,
254248 disableSortRemove : true ,
255- pageCount : Math . ceil ( ( props . reviewData ?. totalCount ?? 0 ) / props . pageSize ) ,
256- pageSize : props . pageSize ,
257249 initialState,
258250 disableResizing : false ,
259251 disableMultiSort : true ,
@@ -262,7 +254,6 @@ export const TaskReviewTable = (props) => {
262254 useFilters ,
263255 useSortBy ,
264256 useResizeColumns ,
265- usePagination ,
266257 ) ;
267258
268259 const handleClearFilters = ( ) => {
@@ -277,7 +268,6 @@ export const TaskReviewTable = (props) => {
277268
278269 setChallengeFilterIds ( [ FILTER_SEARCH_ALL ] ) ;
279270 setProjectFilterIds ( [ FILTER_SEARCH_ALL ] ) ;
280- gotoPage ( 0 ) ;
281271
282272 const defaultSort = {
283273 sortCriteria : {
@@ -362,29 +352,24 @@ export const TaskReviewTable = (props) => {
362352 sortCriteria,
363353 filters,
364354 page : tableState ?. page || 0 ,
365- pageSize : tableState ?. pageSize || pageSize ,
366355 boundingBox : props . reviewCriteria ?. boundingBox ,
367356 includeTags : ! ! props . addedColumns ?. tags ,
368357 savedChallengesOnly : props . reviewCriteria ?. savedChallengesOnly || false ,
369358 excludeOtherReviewers : props . reviewCriteria ?. excludeOtherReviewers || false ,
370359 invertFields : props . reviewCriteria ?. invertFields || { } ,
371360 } ) ;
372361 } ,
373- [ challengeFilterIds , projectFilterIds , props . updateReviewTasks , props . addedColumns , pageSize ] ,
362+ [ challengeFilterIds , projectFilterIds , props . updateReviewTasks , props . addedColumns ] ,
374363 ) ;
375364
376365 useEffect ( ( ) => {
377366 handleTableStateUpdate ( {
378367 sorted : sortBy . map ( ( sort ) => ( { id : sort . id , desc : sort . desc } ) ) ,
379368 filtered : filters . map ( ( filter ) => ( { id : filter . id , value : filter . value } ) ) ,
380- page : pageIndex ,
381- pageSize : pageSize ,
382369 } ) ;
383370 } , [
384371 sortBy ,
385372 filters ,
386- pageIndex ,
387- pageSize ,
388373 challengeFilterIds ,
389374 projectFilterIds ,
390375 handleTableStateUpdate ,
@@ -534,7 +519,7 @@ export const TaskReviewTable = (props) => {
534519 < table { ...getTableProps ( ) } className = { tableStyles } >
535520 < thead > { renderTableHeader ( headerGroups ) } </ thead >
536521 < tbody { ...getTableBodyProps ( ) } >
537- { page . map ( ( row ) => {
522+ { rows . map ( ( row ) => {
538523 prepareRow ( row ) ;
539524 return (
540525 < tr className = { rowStyles } { ...row . getRowProps ( ) } key = { row . id } >
@@ -562,21 +547,20 @@ export const TaskReviewTable = (props) => {
562547 </ table >
563548 </ TableWrapper >
564549 < PaginationControl
565- currentPage = { pageIndex }
566- totalPages = { Math . ceil ( ( props . reviewData ?. totalCount ?? 0 ) / props . pageSize ) }
567- pageSize = { pageSize }
568- gotoPage = { gotoPage }
569- setPageSize = { ( size ) => {
570- setPageSize ( size ) ;
571- gotoPage ( 0 ) ;
572- handleTableStateUpdate ( {
573- sorted : sortBy . map ( ( sort ) => ( { id : sort . id , desc : sort . desc } ) ) ,
574- filtered : filters . map ( ( filter ) => ( { id : filter . id , value : filter . value } ) ) ,
575- page : 0 ,
576- pageSize : size ,
577- } ) ;
578- } }
579- />
550+ currentPage = { props . reviewCriteria ?. page || 0 }
551+ pageCount = { Math . ceil ( ( props . reviewData ?. totalCount || 0 ) / ( props . reviewCriteria ?. pageSize || 20 ) ) }
552+ pageSize = { props . reviewCriteria ?. pageSize || 20 }
553+ gotoPage = { ( page ) => props . updateReviewTasks ( { page } ) }
554+ setPageSize = { ( pageSize ) => props . updateReviewTasks ( { pageSize, page : 0 } ) }
555+ previousPage = { ( ) =>
556+ props . updateReviewTasks ( { page : Math . max ( 0 , ( props . reviewCriteria ?. page || 0 ) - 1 ) } )
557+ }
558+ nextPage = { ( ) => {
559+ const maxPage =
560+ Math . ceil ( ( props . reviewData ?. totalCount || 0 ) / ( props . reviewCriteria ?. pageSize || 20 ) ) - 1 ;
561+ props . updateReviewTasks ( { page : Math . min ( maxPage , ( props . reviewCriteria ?. page || 0 ) + 1 ) } ) ;
562+ } }
563+ />
580564 </ div >
581565 </ div >
582566 { Number . isFinite ( openComments ) && (
0 commit comments