23 lines
777 B
JavaScript
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;
|
|
}
|
|
});
|
|
}
|