From f580608a3137bb6cac309184f47db65e06c35038 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Fri, 1 Jun 2018 15:13:58 -0600 Subject: [PATCH] feat: humanize karma number --- .../coral-admin/src/components/CountBadge.js | 11 ++-------- .../coral-admin/src/components/UserDetail.js | 3 ++- client/coral-framework/helpers/numbers.js | 22 +++++++++++++++++++ 3 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 client/coral-framework/helpers/numbers.js diff --git a/client/coral-admin/src/components/CountBadge.js b/client/coral-admin/src/components/CountBadge.js index c270817b9..24dff7c02 100644 --- a/client/coral-admin/src/components/CountBadge.js +++ b/client/coral-admin/src/components/CountBadge.js @@ -1,20 +1,13 @@ import React from 'react'; import PropTypes from 'prop-types'; import styles from './CountBadge.css'; - -import t from 'coral-framework/services/i18n'; +import { humanizeNumber } from 'coral-framework/helpers/numbers'; const CountBadge = ({ count }) => { let number = count; // shorten large counts to abbreviations - if (number / 1e9 > 1) { - number = `${(number / 1e9).toFixed(1)}${t('modqueue.billion')}`; - } else if (number / 1e6 > 1) { - number = `${(number / 1e6).toFixed(1)}${t('modqueue.million')}`; - } else if (number / 1e3 > 1) { - number = `${(number / 1e3).toFixed(1)}${t('modqueue.thousand')}`; - } + number = humanizeNumber(number); return {number}; }; diff --git a/client/coral-admin/src/components/UserDetail.js b/client/coral-admin/src/components/UserDetail.js index fd609373d..05af20c67 100644 --- a/client/coral-admin/src/components/UserDetail.js +++ b/client/coral-admin/src/components/UserDetail.js @@ -23,6 +23,7 @@ import ActionsMenuItem from 'coral-admin/src/components/ActionsMenuItem'; import UserInfoTooltip from './UserInfoTooltip'; import KarmaTooltip from './KarmaTooltip'; import t from 'coral-framework/services/i18n'; +import { humanizeNumber } from 'coral-framework/helpers/numbers'; class UserDetail extends React.Component { changeTab = tab => { @@ -243,7 +244,7 @@ class UserDetail extends React.Component { styles[getKarma(user.reliable.commenter)] )} > - {user.reliable.commenterKarma} + {humanizeNumber(user.reliable.commenterKarma)} diff --git a/client/coral-framework/helpers/numbers.js b/client/coral-framework/helpers/numbers.js new file mode 100644 index 000000000..bd7f066da --- /dev/null +++ b/client/coral-framework/helpers/numbers.js @@ -0,0 +1,22 @@ +import t from 'coral-framework/services/i18n'; + +const DECIMAL_AMOUNT = 1; + +export function humanizeNumber(number) { + const abs = Math.abs(number); + + if (abs >= 1e9) { + number = `${(number / 1e9).toFixed(DECIMAL_AMOUNT)}${t( + 'modqueue.billion' + )}`; + } else if (abs >= 1e6) { + number = `${(number / 1e6).toFixed(DECIMAL_AMOUNT)}${t( + 'modqueue.million' + )}`; + } else if (abs >= 1e3) { + number = `${(number / 1e3).toFixed(DECIMAL_AMOUNT)}${t( + 'modqueue.thousand' + )}`; + } + return number; +}