From 1364ba5784d1a9b3cc39e56f172c08b96a39420f Mon Sep 17 00:00:00 2001 From: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> Date: Tue, 11 Feb 2025 15:01:27 -0800 Subject: [PATCH] Vary number of decimals of file sizes --- ts/components/Lightbox.tsx | 5 ++--- ts/components/conversation/AttachmentDetailPill.tsx | 12 ++++++------ ts/util/formatFileSize.ts | 7 +++++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/ts/components/Lightbox.tsx b/ts/components/Lightbox.tsx index 6c1fbe045f5..7d1767b7981 100644 --- a/ts/components/Lightbox.tsx +++ b/ts/components/Lightbox.tsx @@ -775,10 +775,9 @@ export function Lightbox({ {attachment.totalDownloaded && attachment.size ? i18n('icu:lightBoxDownloading', { downloaded: formatFileSize( - attachment.totalDownloaded, - 2 + attachment.totalDownloaded ), - total: formatFileSize(attachment.size, 2), + total: formatFileSize(attachment.size), }) : undefined} diff --git a/ts/components/conversation/AttachmentDetailPill.tsx b/ts/components/conversation/AttachmentDetailPill.tsx index 11ad507b5ad..044b92a8853 100644 --- a/ts/components/conversation/AttachmentDetailPill.tsx +++ b/ts/components/conversation/AttachmentDetailPill.tsx @@ -126,7 +126,7 @@ export function AttachmentDetailPill({ ); text = (
- {formatFileSize(totalSize, 2)} + {formatFileSize(totalSize)}
); } else if (totalDownloadedSize > 0) { @@ -148,9 +148,9 @@ export function AttachmentDetailPill({ text = (
{totalDownloadedSize > 0 && areAnyPending - ? `${formatFileSize(totalDownloadedSize, 2)} / ` + ? `${formatFileSize(totalDownloadedSize)} / ` : undefined} - {formatFileSize(totalSize, 2)} + {formatFileSize(totalSize)}
); } else { @@ -165,7 +165,7 @@ export function AttachmentDetailPill({ ); text = (
- {formatFileSize(totalSize, 2)} + {formatFileSize(totalSize)}
); } @@ -191,9 +191,9 @@ export function AttachmentDetailPill({
{totalDownloadedSize > 0 && areAnyPending - ? `${formatFileSize(totalDownloadedSize, 2)} / ` + ? `${formatFileSize(totalDownloadedSize)} / ` : undefined} - {formatFileSize(totalSize, 2)} + {formatFileSize(totalSize)} {isGif ? ' ยท GIF' : undefined}
diff --git a/ts/util/formatFileSize.ts b/ts/util/formatFileSize.ts index bc2f2f622b2..d4101e163dd 100644 --- a/ts/util/formatFileSize.ts +++ b/ts/util/formatFileSize.ts @@ -2,6 +2,9 @@ // SPDX-License-Identifier: AGPL-3.0-only import filesize from 'filesize'; -export function formatFileSize(size: number, decimals = 0): string { - return filesize(size, { round: decimals }); +// Intentional, `filesize` uses `jedec` standard by default +const MB = 1000 * 1000; + +export function formatFileSize(size: number): string { + return filesize(size, { round: size < MB ? 0 : 1 }); }