From 2a03d9be121c05dc4be77cbcfabed628992c0c2d Mon Sep 17 00:00:00 2001 From: Konstantin Vyatkin Date: Tue, 29 Oct 2019 13:09:49 -0400 Subject: [PATCH] don't reemplement localeCompare (#695) --- src/scripts/lib/utils.js | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/scripts/lib/utils.js b/src/scripts/lib/utils.js index 24dc8447..55421daf 100644 --- a/src/scripts/lib/utils.js +++ b/src/scripts/lib/utils.js @@ -105,20 +105,18 @@ export const strToEl = (() => { }; })(); -export const sortByAlpha = (a, b) => { - const labelA = `${a.label || a.value}`.toLowerCase(); - const labelB = `${b.label || b.value}`.toLowerCase(); - - if (labelA < labelB) { - return -1; - } - - if (labelA > labelB) { - return 1; - } - - return 0; -}; +export const sortByAlpha = + /** + * @param {{ label?: string, value: string }} a + * @param {{ label?: string, value: string }} b + * @returns {number} + */ + ({ value, label = value }, { value: value2, label: label2 = value2 }) => + label.localeCompare(label2, [], { + sensitivity: 'base', + ignorePunctuation: true, + numeric: true, + }); export const sortByScore = (a, b) => a.score - b.score;