Skip to content

Commit a72b40f

Browse files
committed
feat: dangerous alerts are always first
1 parent 95d1db4 commit a72b40f

1 file changed

Lines changed: 21 additions & 11 deletions

File tree

src/helpers/weather.ts

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)