@@ -524,13 +524,16 @@ try {
524524 option . setAttribute ( 'due' , segment . due || '' ) ;
525525 segments . append ( option ) ;
526526 } ) ;
527- segments . value = segmentsArray . find ( s => {
528- if ( ! s . due ) return false ;
529- return ( new Date ( `${ s . due } T00:00:00` ) . toLocaleDateString ( 'en-US' , { weekday : 'short' , year : 'numeric' , month : 'short' , day : 'numeric' } ) === new Date ( ) . toLocaleDateString ( 'en-US' , { weekday : 'short' , year : 'numeric' , month : 'short' , day : 'numeric' , } ) && new Date ( ) . getTime ( ) <= periodRange [ 1 ] ) ;
530- } ) ?. id || segmentsArray . find ( s => {
531- if ( ! s . due ) return false ;
532- return ( new Date ( `${ s . due } T00:00:00` ) . getTime ( ) > periodRange [ 1 ] && new Date ( `${ s . due } T00:00:00` ) . getTime ( ) <= periodRange [ 0 ] + 86400000 ) ;
533- } ) ?. id || segmentsArray . find ( s => ! s . due ) ?. id || segmentsArray [ 0 ] ?. id ;
527+ const today = new Date ( ) ;
528+ const todayString = today . toLocaleDateString ( 'en-US' , { weekday : 'short' , year : 'numeric' , month : 'short' , day : 'numeric' } ) ;
529+ const sortedSegments = segmentsArray . filter ( s => s . due ) . sort ( ( a , b ) => new Date ( `${ a . due } T00:00:00` ) - new Date ( `${ b . due } T00:00:00` ) ) ;
530+ segments . value = sortedSegments . find ( s => {
531+ const dueDate = new Date ( `${ s . due } T00:00:00` ) ;
532+ return dueDate . toLocaleDateString ( 'en-US' , { weekday : 'short' , year : 'numeric' , month : 'short' , day : 'numeric' } ) === todayString && today . getTime ( ) <= periodRange [ 1 ] ;
533+ } ) ?. id || sortedSegments . find ( s => {
534+ const dueDate = new Date ( `${ s . due } T00:00:00` ) ;
535+ return dueDate . getTime ( ) > periodRange [ 1 ] ;
536+ } ) ?. id || sortedSegments [ 0 ] ?. id || segmentsArray [ 0 ] ?. id ;
534537 segments . removeEventListener ( "change" , updateSegment ) ;
535538 segments . addEventListener ( "change" , updateSegment ) ;
536539 // Update history feed
0 commit comments