diff --git a/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx b/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx
index 42c77146e..5c72860d8 100644
--- a/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx
+++ b/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx
@@ -3,13 +3,13 @@ import { useDateRange, useMessages, useSticky } from 'components/hooks';
import WebsiteDateFilter from 'components/input/WebsiteDateFilter';
import MetricCard from 'components/metrics/MetricCard';
import MetricsBar from 'components/metrics/MetricsBar';
-import { formatShortTime } from 'lib/format';
+import { formatLongNumberOptions, formatShortTime } from 'lib/format';
import WebsiteFilterButton from './WebsiteFilterButton';
import useWebsiteStats from 'components/hooks/queries/useWebsiteStats';
import styles from './WebsiteMetricsBar.module.css';
import { Dropdown, Item } from 'react-basics';
import useStore, { setWebsiteDateCompare } from 'store/websites';
-import { type FormatNumberOptions, useIntl } from 'react-intl';
+import { useIntl } from 'react-intl';
export function WebsiteMetricsBar({
websiteId,
@@ -36,8 +36,6 @@ export function WebsiteMetricsBar({
const intl = useIntl();
const { pageviews, visitors, visits, bounces, totaltime } = data || {};
- const optionsNumber: FormatNumberOptions = { notation: 'compact', maximumSignificantDigits: 3 };
- const optionsSmallNumber: FormatNumberOptions = { notation: 'compact' };
const metrics = data
? [
@@ -45,22 +43,19 @@ export function WebsiteMetricsBar({
...pageviews,
label: formatMessage(labels.views),
change: pageviews.value - pageviews.prev,
- formatValue: (n: number) =>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber),
+ formatValue: (n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n)),
},
{
...visits,
label: formatMessage(labels.visits),
change: visits.value - visits.prev,
- formatValue: (n: number) =>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber),
+ formatValue: (n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n)),
},
{
...visitors,
label: formatMessage(labels.visitors),
change: visitors.value - visitors.prev,
- formatValue: (n: number) =>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber),
+ formatValue: (n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n)),
},
{
label: formatMessage(labels.bounceRate),
diff --git a/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx b/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx
index a73c5207f..91805b07e 100644
--- a/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx
+++ b/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx
@@ -2,16 +2,14 @@ import MetricCard from 'components/metrics/MetricCard';
import { useMessages } from 'components/hooks';
import { RealtimeData } from 'lib/types';
import styles from './RealtimeHeader.module.css';
-import { type FormatNumberOptions, useIntl } from 'react-intl';
+import { useIntl } from 'react-intl';
+import { formatLongNumberOptions } from 'lib/format';
export function RealtimeHeader({ data }: { data: RealtimeData }) {
const { formatMessage, labels } = useMessages();
const { totals }: any = data || {};
const intl = useIntl();
- const optionsNumber: FormatNumberOptions = { notation: 'compact', maximumSignificantDigits: 3 };
- const optionsSmallNumber: FormatNumberOptions = { notation: 'compact' };
-
return (
@@ -19,33 +17,25 @@ export function RealtimeHeader({ data }: { data: RealtimeData }) {
className={styles.card}
label={formatMessage(labels.views)}
value={totals.views}
- formatValue={(n: number) =>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>
diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx
index 106c9fb18..ef9aa75eb 100644
--- a/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx
+++ b/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx
@@ -3,47 +3,37 @@ import useWebsiteSessionStats from 'components/hooks/queries/useWebsiteSessionSt
import WebsiteDateFilter from 'components/input/WebsiteDateFilter';
import MetricCard from 'components/metrics/MetricCard';
import MetricsBar from 'components/metrics/MetricsBar';
+import { formatLongNumberOptions } from 'lib/format';
import { Flexbox } from 'react-basics';
-import { type FormatNumberOptions, useIntl } from 'react-intl';
+import { useIntl } from 'react-intl';
export function SessionsMetricsBar({ websiteId }: { websiteId: string }) {
const { formatMessage, labels } = useMessages();
const { data, isLoading, isFetched, error } = useWebsiteSessionStats(websiteId);
const intl = useIntl();
- const optionsNumber: FormatNumberOptions = { notation: 'compact', maximumSignificantDigits: 3 };
- const optionsSmallNumber: FormatNumberOptions = { notation: 'compact' };
-
return (
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>
diff --git a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionStats.tsx b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionStats.tsx
index 2e1542421..62f1059cb 100644
--- a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionStats.tsx
+++ b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionStats.tsx
@@ -1,38 +1,29 @@
import { useMessages } from 'components/hooks';
import MetricCard from 'components/metrics/MetricCard';
import MetricsBar from 'components/metrics/MetricsBar';
-import { formatShortTime } from 'lib/format';
-import { type FormatNumberOptions, useIntl } from 'react-intl';
+import { formatLongNumberOptions, formatShortTime } from 'lib/format';
+import { useIntl } from 'react-intl';
export function SessionStats({ data }) {
const { formatMessage, labels } = useMessages();
const intl = useIntl();
- const optionsNumber: FormatNumberOptions = { notation: 'compact', maximumSignificantDigits: 3 };
- const optionsSmallNumber: FormatNumberOptions = { notation: 'compact' };
-
return (
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>
- intl.formatNumber(+n, +n < 100 ? optionsSmallNumber : optionsNumber)
- }
+ formatValue={(n: number) => intl.formatNumber(+n, formatLongNumberOptions(+n))}
/>