Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 21 additions & 11 deletions src/helpers/weather.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,29 +39,39 @@ export function sortAlerts(
allAlerts: Alert[],
gAirmetRead: OnOff,
): Alert[] {
const DANGEROUS_OFFSET = 0;
const NON_DANGEROUS_OFFSET = 1e15;
const GAIRMET_READ_OFFSET = 2e15;

return sortBy(alerts, (alert) => {
const dangerousPrefix = isAlertDangerous(alert)
? DANGEROUS_OFFSET
: NON_DANGEROUS_OFFSET;

// If the setting for always marking G-Airmets as read is on,
// push all G-Airmets to the bottom of the list of alerts so
// the user doesn't have to scroll to get to the stuff they care about more
// push all G-Airmets to the bottom of the list of alerts
if (gAirmetRead === OnOff.On && isGAirmetAlert(alert))
return (
-new Date(
extractIssuedTimestamp(alert, findRelatedAlerts(alert, allAlerts)),
).getTime() +
1000 * 60 * 60 * 60
).getTime() + GAIRMET_READ_OFFSET
);

if (isWeatherAlert(alert))
return -new Date(alert.properties.onset).getTime();
return -new Date(alert.properties.onset).getTime() + dangerousPrefix;

if (isTFRAlert(alert))
return -new Date(
alert.properties.coreNOTAMData.notam.effectiveStart,
).getTime();
return (
-new Date(
alert.properties.coreNOTAMData.notam.effectiveStart,
).getTime() + dangerousPrefix
);

return -new Date(
extractIssuedTimestamp(alert, findRelatedAlerts(alert, allAlerts)),
).getTime();
return (
-new Date(
extractIssuedTimestamp(alert, findRelatedAlerts(alert, allAlerts)),
).getTime() + dangerousPrefix
);
});
}

Expand Down