2019-07-17 22:49:06 +02:00
|
|
|
// @flow
|
|
|
|
|
|
|
|
export function toCapitalCase(string: string) {
|
|
|
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
|
|
}
|
2022-01-10 03:35:34 +01:00
|
|
|
|
2022-02-26 15:55:49 +01:00
|
|
|
export function toCompactNotation(number: string | number, lang: ?string, minThresholdToApply?: number) {
|
2022-01-11 17:42:12 +01:00
|
|
|
const locale = lang || 'en';
|
2022-02-26 15:55:49 +01:00
|
|
|
const useCompactNotation = !minThresholdToApply || Number(number) >= minThresholdToApply;
|
2022-01-11 17:42:12 +01:00
|
|
|
|
2022-02-26 15:55:49 +01:00
|
|
|
if (useCompactNotation) {
|
2022-01-11 17:42:12 +01:00
|
|
|
try {
|
|
|
|
return Number(number).toLocaleString(locale, {
|
|
|
|
compactDisplay: 'short',
|
|
|
|
notation: 'compact',
|
|
|
|
});
|
|
|
|
} catch (err) {
|
|
|
|
// Not all browsers support the additional options.
|
|
|
|
return Number(number).toLocaleString(locale);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
return Number(number).toLocaleString(locale);
|
2022-01-10 03:35:34 +01:00
|
|
|
}
|
|
|
|
}
|
2022-02-23 13:42:43 +01:00
|
|
|
|
|
|
|
export function stripLeadingAtSign(str: ?string) {
|
|
|
|
return str && str.charAt(0) === '@' ? str.slice(1) : str;
|
|
|
|
}
|
2022-05-18 11:13:14 +02:00
|
|
|
|
|
|
|
export function getSimpleStrHash(s: string) {
|
|
|
|
return String(s.split('').reduce((a, b) => ((a << 5) - a + b.charCodeAt(0)) | 0, 0));
|
|
|
|
}
|