@@ -39,29 +39,39 @@ export function sortAlerts(
3939 allAlerts : Alert [ ] ,
4040 gAirmetRead : OnOff ,
4141) : Alert [ ] {
42+ const DANGEROUS_OFFSET = 0 ;
43+ const NON_DANGEROUS_OFFSET = 1e15 ;
44+ const GAIRMET_READ_OFFSET = 2e15 ;
45+
4246 return sortBy ( alerts , ( alert ) => {
47+ const dangerousPrefix = isAlertDangerous ( alert )
48+ ? DANGEROUS_OFFSET
49+ : NON_DANGEROUS_OFFSET ;
50+
4351 // If the setting for always marking G-Airmets as read is on,
44- // push all G-Airmets to the bottom of the list of alerts so
45- // the user doesn't have to scroll to get to the stuff they care about more
52+ // push all G-Airmets to the bottom of the list of alerts
4653 if ( gAirmetRead === OnOff . On && isGAirmetAlert ( alert ) )
4754 return (
4855 - new Date (
4956 extractIssuedTimestamp ( alert , findRelatedAlerts ( alert , allAlerts ) ) ,
50- ) . getTime ( ) +
51- 1000 * 60 * 60 * 60
57+ ) . getTime ( ) + GAIRMET_READ_OFFSET
5258 ) ;
5359
5460 if ( isWeatherAlert ( alert ) )
55- return - new Date ( alert . properties . onset ) . getTime ( ) ;
61+ return - new Date ( alert . properties . onset ) . getTime ( ) + dangerousPrefix ;
5662
5763 if ( isTFRAlert ( alert ) )
58- return - new Date (
59- alert . properties . coreNOTAMData . notam . effectiveStart ,
60- ) . getTime ( ) ;
64+ return (
65+ - new Date (
66+ alert . properties . coreNOTAMData . notam . effectiveStart ,
67+ ) . getTime ( ) + dangerousPrefix
68+ ) ;
6169
62- return - new Date (
63- extractIssuedTimestamp ( alert , findRelatedAlerts ( alert , allAlerts ) ) ,
64- ) . getTime ( ) ;
70+ return (
71+ - new Date (
72+ extractIssuedTimestamp ( alert , findRelatedAlerts ( alert , allAlerts ) ) ,
73+ ) . getTime ( ) + dangerousPrefix
74+ ) ;
6575 } ) ;
6676}
6777
0 commit comments