@@ -9,16 +9,18 @@ import { selectCsrfToken, selectCurrentUser } from '../context/selectors';
99
1010import './PulsePage.css' ;
1111
12+ const center = 2 ; // zero-based
13+
1214const PulsePage = ( ) => {
1315 const { state } = useContext ( AppContext ) ;
1416 const currentUser = selectCurrentUser ( state ) ;
1517 const csrf = selectCsrfToken ( state ) ;
1618 const history = useHistory ( ) ;
1719
1820 const [ externalComment , setExternalComment ] = useState ( '' ) ;
19- const [ externalScore , setExternalScore ] = useState ( 2 ) ; // zero-based
21+ const [ externalScore , setExternalScore ] = useState ( center ) ;
2022 const [ internalComment , setInternalComment ] = useState ( '' ) ;
21- const [ internalScore , setInternalScore ] = useState ( 2 ) ; // zero-based
23+ const [ internalScore , setInternalScore ] = useState ( center ) ;
2224 const [ pulse , setPulse ] = useState ( null ) ;
2325 const [ submittedToday , setSubmittedToday ] = useState ( false ) ;
2426 const today = format ( new Date ( ) , 'yyyy-MM-dd' ) ;
@@ -36,10 +38,10 @@ const PulsePage = () => {
3638
3739 setInternalComment ( pulse . internalFeelings ?? '' ) ;
3840 setExternalComment ( pulse . externalFeelings ?? '' ) ;
39- //TODO: Change the next two lines to use scores from server
40- // when story #2345 is completed.
41- setInternalScore ( 2 ) ;
42- setExternalScore ( 3 ) ;
41+ setInternalScore ( pulse . internalScore == undefined ?
42+ center : pulse . internalScore - 1 ) ;
43+ setExternalScore ( pulse . externalScore == undefined ?
44+ center : pulse . externalScore - 1 ) ;
4345 } , [ pulse ] ) ;
4446
4547 const loadTodayPulse = async ( ) => {
@@ -65,8 +67,21 @@ const PulsePage = () => {
6567 } ) ;
6668 if ( res . error ) return ;
6769
68- const pulses = res . payload . data ;
69- setPulse ( pulses . at ( - 1 ) ) ; // last element is most recent
70+ // Sort pulse responses by date, latest to earliest
71+ const pulses = res . payload . data ?. sort ( ( a , b ) => {
72+ const l = a . submissionDate ;
73+ const r = b . submissionDate ;
74+ if ( r [ 0 ] == l [ 0 ] ) {
75+ if ( r [ 1 ] == l [ 1 ] ) {
76+ return r [ 2 ] - l [ 2 ] ;
77+ } else {
78+ return r [ 1 ] - l [ 1 ] ;
79+ }
80+ } else {
81+ return r [ 0 ] - l [ 0 ] ;
82+ }
83+ } ) ;
84+ setPulse ( pulses . at ( 0 ) ) ;
7085 } ;
7186
7287 useEffect ( ( ) => {
0 commit comments