diff --git a/ui/component/fileViewCountInline/view.jsx b/ui/component/fileViewCountInline/view.jsx index 02605e10c..c6d7d5e98 100644 --- a/ui/component/fileViewCountInline/view.jsx +++ b/ui/component/fileViewCountInline/view.jsx @@ -2,6 +2,7 @@ import React from 'react'; import 'scss/component/_view_count.scss'; import * as PAGES from 'constants/pages'; +import { toCompactNotation } from 'util/string'; type Props = { uri: string, @@ -14,16 +15,7 @@ type Props = { export default function FileViewCountInline(props: Props) { const { isLivestream, claim, viewCount, lang } = props; - let formattedViewCount; - - try { - formattedViewCount = Number(viewCount).toLocaleString(lang || 'en', { - compactDisplay: 'short', - notation: 'compact', - }); - } catch (err) { - formattedViewCount = Number(viewCount).toLocaleString(); - } + const formattedViewCount = toCompactNotation(viewCount, lang); // Limit the view-count visibility to specific pages for now. We'll eventually // show it everywhere, so this band-aid would be the easiest to clean up diff --git a/ui/util/string.js b/ui/util/string.js index e4cb060c5..d5784e9ad 100644 --- a/ui/util/string.js +++ b/ui/util/string.js @@ -3,3 +3,15 @@ export function toCapitalCase(string: string) { return string.charAt(0).toUpperCase() + string.slice(1); } + +export function toCompactNotation(number: string | number, lang: ?string) { + try { + return Number(number).toLocaleString(lang || 'en', { + compactDisplay: 'short', + notation: 'compact', + }); + } catch (err) { + // Not all browsers support the addition options. + return Number(number).toLocaleString(); + } +}