@@ -22,6 +22,8 @@ import {
2222 SentimentSatisfied ,
2323 SentimentVerySatisfied ,
2424} from '@mui/icons-material' ;
25+ import ArrowBackIcon from '@mui/icons-material/ArrowBack' ;
26+ import ArrowForwardIcon from '@mui/icons-material/ArrowForward' ;
2527import {
2628 Avatar ,
2729 Card ,
@@ -120,7 +122,7 @@ const PulseReportPage = () => {
120122 const [ expanded , setExpanded ] = useState ( false ) ;
121123 const [ scoreChartData , setScoreChartData ] = useState ( [ ] ) ;
122124 const [ pulses , setPulses ] = useState ( [ ] ) ;
123- const [ pulsesUpperBounds , setPulsesUpperBounds ] = useState ( pulsesPerPage ) ;
125+ const [ pulsesPageNumber , setPulsesPageNumber ] = useState ( 0 ) ;
124126 const [ scope , setScope ] = useState ( 'Individual' ) ;
125127 const [ scoreType , setScoreType ] = useState ( ScoreOption . COMBINED ) ;
126128 const [ selectedPulse , setSelectedPulse ] = useState ( null ) ;
@@ -333,7 +335,7 @@ const PulseReportPage = () => {
333335 return compare ;
334336 } ) ;
335337 setPulses ( pulses ) ;
336- setPulsesUpperBounds ( pulsesPerPage ) ;
338+ setPulsesPageNumber ( 0 ) ;
337339 } ;
338340
339341 useEffect ( ( ) => {
@@ -694,7 +696,10 @@ const PulseReportPage = () => {
694696 ) ;
695697
696698 const responseSummary = ( ) => {
697- const pulsesSlice = pulses . slice ( 0 , pulsesUpperBounds ) ;
699+ const leftDisabled = ( pulsesPageNumber <= 0 ) ;
700+ const rightDisabled = ( ( ( pulsesPageNumber + 1 ) * pulsesPerPage ) >= pulses . length ) ;
701+ const start = pulsesPageNumber * pulsesPerPage ;
702+ const pulsesSlice = pulses . slice ( start , start + pulsesPerPage ) ;
698703
699704 let filteredPulses = pulsesSlice ;
700705 const teamMemberIds = teamMembers . map ( member => member . id ) ;
@@ -738,14 +743,26 @@ const PulseReportPage = () => {
738743 </ div >
739744 ) ;
740745 } ) }
741- { pulsesUpperBounds < pulses . length &&
742- < Link to = "#" style = { { cursor : 'pointer' } } onClick = { ( event ) => {
743- event . preventDefault ( ) ;
744- setPulsesUpperBounds ( pulsesUpperBounds + pulsesPerPage ) ;
745- } } >
746- Load more...
747- </ Link >
748- }
746+ < Link to = "#"
747+ style = { leftDisabled ? { cursor : 'auto' } : { cursor : 'pointer' } }
748+ onClick = { ( event ) => {
749+ event . preventDefault ( ) ;
750+ if ( ! leftDisabled ) {
751+ setPulsesPageNumber ( pulsesPageNumber - 1 ) ;
752+ }
753+ } } >
754+ < ArrowBackIcon />
755+ </ Link >
756+ < Link to = "#"
757+ style = { rightDisabled ? { cursor : 'auto' } : { cursor : 'pointer' } }
758+ onClick = { ( event ) => {
759+ event . preventDefault ( ) ;
760+ if ( ! rightDisabled ) {
761+ setPulsesPageNumber ( pulsesPageNumber + 1 ) ;
762+ }
763+ } } >
764+ < ArrowForwardIcon />
765+ </ Link >
749766 </ >
750767 ) ;
751768 } ;
0 commit comments