alerte-secours/src/scenes/AlertCurMap/prioritizeFeatures.js

23 lines
777 B
JavaScript

export default function prioritizeFeatures(features) {
return features
.filter(({ properties }) => !properties.isUserLocation)
.sort(({ properties: x }, { properties: y }) => {
// if both cluster priority is given to higher level
if (x.cluster && y.cluster) {
return x.x_max_level_num < y.x_max_level_num ? 1 : -1;
}
// if one is cluster, and the other is not, priority is given to cluster
if (!x.cluster && y.cluster) {
return 1;
}
if (x.cluster && !y.cluster) {
return -1;
}
// if both are alerts priority is given to the most recent
if (x.alert && y.alert) {
return new Date(x.alert.createdAt) < new Date(y.alert.createdAt)
? 1
: -1;
}
});
}