comparatorWithPriorities function implemented

This commit is contained in:
nklhrstv 2020-03-28 14:34:01 +02:00
parent 7c9e06f037
commit d4a08bf6ff
2 changed files with 25 additions and 0 deletions

View file

@ -0,0 +1,23 @@
const comparatorWithPriorities = (priorities) => {
return (a, b) => {
if (isNaN(priorities[a]) && isNaN(priorities[b])) {
return a.localeCompare(b);
} else if (isNaN(priorities[a])) {
if (priorities[b] === Number.NEGATIVE_INFINITY) {
return -1;
} else {
return 1;
}
} else if (isNaN(priorities[b])) {
if (priorities[a] === Number.NEGATIVE_INFINITY) {
return 1;
} else {
return -1;
}
} else {
return priorities[b] - priorities[a];
}
};
};
module.exports = comparatorWithPriorities;

View file

@ -18,6 +18,7 @@ const SharePrompt = require('./SharePrompt');
const Slider = require('./Slider');
const TextInput = require('./TextInput');
const { ToastProvider, useToast } = require('./Toast');
const comparatorWithPriorities = require('./comparatorWithPriorities');
const CONSTANTS = require('./CONSTANTS');
const languageNames = require('./languageNames');
const routesRegexp = require('./routesRegexp');
@ -55,6 +56,7 @@ module.exports = {
TextInput,
ToastProvider,
useToast,
comparatorWithPriorities,
CONSTANTS,
languageNames,
routesRegexp,