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;
+}