X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/57357cac58b568e2ba1445af6a44eb089026b34e..cc493b89840b48f40c2beaf626994724331aa196:/src/common/formatters.ts diff --git a/src/common/formatters.ts b/src/common/formatters.ts index fe7df14c..49e06905 100644 --- a/src/common/formatters.ts +++ b/src/common/formatters.ts @@ -10,7 +10,7 @@ export const formatDate = (isoDate: string) => { export const formatFileSize = (size?: number) => { if (typeof size === "number") { - for (const { base, unit } of fileSizes) { + for (const { base, unit } of FILE_SIZES) { if (size >= base) { return `${(size / base).toFixed()} ${unit}`; } @@ -19,7 +19,19 @@ export const formatFileSize = (size?: number) => { return ""; }; -const fileSizes = [ +export const formatProgress = (loaded: number, total: number) => { + const progress = loaded >= 0 && total > 0 ? loaded * 100 / total : 0; + return `${progress.toFixed(2)}%`; +}; + +export function formatUploadSpeed(prevLoaded: number, loaded: number, prevTime: number, currentTime: number) { + const speed = loaded > prevLoaded && currentTime > prevTime + ? (loaded - prevLoaded) / (currentTime - prevTime) + : 0; + return `${(speed / 1000).toFixed(2)} KB/s`; +} + +const FILE_SIZES = [ { base: 1000000000000, unit: "TB" @@ -40,4 +52,4 @@ const fileSizes = [ base: 1, unit: "B" } -]; \ No newline at end of file +];