From 0c4b9080207b0ca35a85ffa1e4f6a67189314ac8 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 5 Sep 2025 17:29:10 +0300 Subject: Simplify post number formatting (#8978) * revert number formatting change * use formatPostStatCount in repost web --- src/components/PostControls/RepostButton.web.tsx | 9 ++++---- src/components/PostControls/util.ts | 26 +----------------------- 2 files changed, 6 insertions(+), 29 deletions(-) (limited to 'src/components') diff --git a/src/components/PostControls/RepostButton.web.tsx b/src/components/PostControls/RepostButton.web.tsx index e8e02d2c0..8a2a61fef 100644 --- a/src/components/PostControls/RepostButton.web.tsx +++ b/src/components/PostControls/RepostButton.web.tsx @@ -4,7 +4,6 @@ import {useLingui} from '@lingui/react' import {useRequireAuth} from '#/state/session' import {useSession} from '#/state/session' import {EventStopper} from '#/view/com/util/EventStopper' -import {formatCount} from '#/view/com/util/numeric/format' import {useTheme} from '#/alf' import {CloseQuote_Stroke2_Corner1_Rounded as Quote} from '#/components/icons/Quote' import {Repost_Stroke2_Corner2_Rounded as Repost} from '#/components/icons/Repost' @@ -14,6 +13,7 @@ import { PostControlButtonIcon, PostControlButtonText, } from './PostControlButton' +import {useFormatPostStatCount} from './util' interface Props { isReposted: boolean @@ -33,9 +33,10 @@ export const RepostButton = ({ embeddingDisabled, }: Props) => { const t = useTheme() - const {_, i18n} = useLingui() + const {_} = useLingui() const {hasSession} = useSession() const requireAuth = useRequireAuth() + const formatPostStatCount = useFormatPostStatCount() return hasSession ? ( @@ -53,7 +54,7 @@ export const RepostButton = ({ {typeof repostCount !== 'undefined' && repostCount > 0 && ( - {formatCount(i18n, repostCount)} + {formatPostStatCount(repostCount)} )} @@ -105,7 +106,7 @@ export const RepostButton = ({ {typeof repostCount !== 'undefined' && repostCount > 0 && ( - {formatCount(i18n, repostCount)} + {formatPostStatCount(repostCount)} )} diff --git a/src/components/PostControls/util.ts b/src/components/PostControls/util.ts index b8050a85a..c220cea39 100644 --- a/src/components/PostControls/util.ts +++ b/src/components/PostControls/util.ts @@ -1,5 +1,4 @@ import {useCallback} from 'react' -import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' /** @@ -12,36 +11,13 @@ export function useFormatPostStatCount() { return useCallback( (postStatCount: number) => { - const isOver1k = postStatCount >= 1_000 const isOver10k = postStatCount >= 10_000 - const isOver1M = postStatCount >= 1_000_000 - const formatted = i18n.number(postStatCount, { + return i18n.number(postStatCount, { notation: 'compact', maximumFractionDigits: isOver10k ? 0 : 1, // @ts-expect-error - roundingMode not in the types roundingMode: 'trunc', }) - const count = formatted.replace(/\D+$/g, '') - - if (isOver1M) { - return i18n._( - msg({ - message: `${count}M`, - comment: - 'For post statistics. Indicates a number in the millions. Please use the shortest format appropriate for your language.', - }), - ) - } else if (isOver1k) { - return i18n._( - msg({ - message: `${count}K`, - comment: - 'For post statistics. Indicates a number in the thousands. Please use the shortest format appropriate for your language.', - }), - ) - } else { - return count - } }, [i18n], ) -- cgit 1.4.1