From d570badd896c97ed6654618f7f1298a1494d604e Mon Sep 17 00:00:00 2001 From: Micah Morrison Date: Tue, 26 Dec 2023 11:24:20 -0500 Subject: [PATCH] Improve number formatting --- lib/search/pages/search_page.dart | 3 ++- lib/utils/numbers.dart | 15 ++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/search/pages/search_page.dart b/lib/search/pages/search_page.dart index 36a2e1392..db670f043 100644 --- a/lib/search/pages/search_page.dart +++ b/lib/search/pages/search_page.dart @@ -43,6 +43,7 @@ import 'package:thunder/utils/global_context.dart'; import 'package:thunder/utils/instance.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/utils/numbers.dart'; class SearchPage extends StatefulWidget { const SearchPage({super.key}); @@ -736,7 +737,7 @@ class _SearchPageState extends State with AutomaticKeepAliveClientMi ), ), Text( - ' · ${communityView.counts.subscribers}', + ' · ${formatLongNumber(communityView.counts.subscribers)}', semanticsLabel: l10n.countSubscribers(communityView.counts.subscribers), ), const SizedBox(width: 4), diff --git a/lib/utils/numbers.dart b/lib/utils/numbers.dart index ee7a26f99..b9de36a8e 100644 --- a/lib/utils/numbers.dart +++ b/lib/utils/numbers.dart @@ -1,7 +1,8 @@ -String formatNumberToK(int number) { - if (number.abs() > 999) { - return '${(number.sign * number.abs() / 1000).toStringAsFixed(1)}K'; - } else { - return (number.sign * number.abs()).toString(); - } -} +import 'package:intl/intl.dart'; + +final NumberFormat _compactFormatter = NumberFormat.compact(); +final NumberFormat _longFormatter = NumberFormat.decimalPatternDigits(decimalDigits: 0); + +String formatNumberToK(int number) => _compactFormatter.format(number); + +String formatLongNumber(int number) => _longFormatter.format(number);