@@ -596,6 +596,29 @@ try {
596596 document . querySelector ( '[data-segment-due]' ) . setAttribute ( 'hidden' , '' ) ;
597597 if ( selectedSegment . due ) {
598598 document . querySelector ( '[data-segment-due]' ) . innerHTML = `<i class="bi bi-calendar3"></i> Due ${ new Date ( `${ selectedSegment . due } T00:00:00` ) . toLocaleDateString ( 'en-US' , { weekday : 'short' , year : 'numeric' , month : 'short' , day : 'numeric' } ) } ` ;
599+ if ( document . querySelector ( '[data-segment-due]' ) . _interval ) clearInterval ( document . querySelector ( '[data-segment-due]' ) . _interval ) ;
600+ document . querySelector ( '[data-segment-due]' ) . _interval = setInterval ( ( ) => {
601+ const dueTime = new Date ( `${ selectedSegment . due } T00:00:00` ) . getTime ( ) ;
602+ const currentTime = new Date ( ) . getTime ( ) ;
603+ var timeDiff = dueTime - currentTime ;
604+ var prefix = 'in ' ;
605+ var suffix = '' ;
606+ if ( timeDiff < 0 ) {
607+ timeDiff = Math . abs ( timeDiff ) ;
608+ prefix = 'Past due - ' ;
609+ suffix = ' ago' ;
610+ }
611+ const days = Math . floor ( timeDiff / ( 1000 * 60 * 60 * 24 ) ) ;
612+ const hours = Math . floor ( ( timeDiff % ( 1000 * 60 * 60 * 24 ) ) / ( 1000 * 60 * 60 ) ) ;
613+ const minutes = Math . floor ( ( timeDiff % ( 1000 * 60 * 60 ) ) / ( 1000 * 60 ) ) ;
614+ const seconds = Math . floor ( ( timeDiff % ( 1000 * 60 ) ) / 1000 ) ;
615+ var timeString = prefix ;
616+ if ( days > 0 ) timeString += `${ days } day${ days > 1 ? 's' : '' } , ` ;
617+ if ( hours > 0 ) timeString += `${ hours } hour${ hours > 1 ? 's' : '' } , ` ;
618+ if ( minutes > 0 ) timeString += `${ minutes } minute${ minutes !== 1 ? 's' : '' } , ` ;
619+ if ( hours === 0 ) timeString += `${ seconds } second${ seconds !== 1 ? 's' : '' } , ` ;
620+ document . querySelector ( '[data-segment-due]' ) . innerHTML = `<i class="bi bi-calendar3"></i> Due ${ new Date ( `${ selectedSegment . due } T00:00:00` ) . toLocaleDateString ( 'en-US' , { weekday : 'short' , year : 'numeric' , month : 'short' , day : 'numeric' } ) } (${ timeString . slice ( 0 , - 2 ) } ${ suffix } )` ;
621+ } , 1000 ) ;
599622 document . querySelector ( '[data-segment-due]' ) . removeAttribute ( 'hidden' ) ;
600623 } ;
601624 questions . removeEventListener ( "change" , updateQuestion ) ;
0 commit comments