@@ -139,18 +139,24 @@ const PeriodsPage: React.FC = () => {
139139 ) ;
140140 if ( error ) return < Alert variant = "danger" > { error } </ Alert > ;
141141
142- // Filter and sort periods before rendering
143- const filteredPeriods = periods
142+ const periodOptions = periods
144143 . filter ( p => {
145- // Filter by selected unit if set
146144 if ( selectedUnit && p . unitId !== selectedUnit . unitId ) return false ;
147- // Then filter by selected period if set
145+ return true ;
146+ } )
147+ . slice ( )
148+ . sort ( ( a , b ) => new Date ( a . startTime || '' ) . getTime ( ) - new Date ( b . startTime || '' ) . getTime ( ) ) ;
149+
150+ // Filter and sort periods before rendering table
151+ const filteredPeriods = periodOptions
152+ . filter ( p => {
148153 if ( selectedPeriod && p . periodId !== selectedPeriod . periodId ) return false ;
149154 return true ;
150155 } )
156+ . slice ( )
151157 . sort ( ( a , b ) => {
152- const aTime = new Date ( a . startTime ) . getTime ( ) ;
153- const bTime = new Date ( b . startTime ) . getTime ( ) ;
158+ const aTime = new Date ( a . startTime || '' ) . getTime ( ) ;
159+ const bTime = new Date ( b . startTime || '' ) . getTime ( ) ;
154160 return sortOrder === 'asc' ? aTime - bTime : bTime - aTime ;
155161 } ) ;
156162
@@ -172,9 +178,9 @@ const PeriodsPage: React.FC = () => {
172178 />
173179 < ContextSelect
174180 label = "Period"
175- options = { filteredPeriods }
181+ options = { periodOptions }
176182 value = { selectedPeriod ? selectedPeriod . periodId : null }
177- onSelect = { id => setSelectedPeriod ( id ? filteredPeriods . find ( p => p . periodId === id ) ?? null : null ) }
183+ onSelect = { id => setSelectedPeriod ( id ? periodOptions . find ( p => p . periodId === id ) ?? null : null ) }
178184 loading = { loading }
179185 getOptionLabel = { p => p . description }
180186 getOptionValue = { p => p . periodId }
0 commit comments