X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/add698bee2d2b7002a99aa08ac99b93179e2a535..273119605b7f33940a5ef9b1422eb1ff152d6764:/src/common/formatters.ts diff --git a/src/common/formatters.ts b/src/common/formatters.ts index 3cacc6c83b..a38609a678 100644 --- a/src/common/formatters.ts +++ b/src/common/formatters.ts @@ -4,128 +4,128 @@ import { PropertyValue } from 'models/search-bar'; import { - Vocabulary, - getTagKeyLabel, - getTagValueLabel, + Vocabulary, + getTagKeyLabel, + getTagValueLabel, } from 'models/vocabulary'; export const formatDate = (isoDate?: string | null, utc: boolean = false) => { - if (isoDate) { - const date = new Date(isoDate); - let text: string; - if (utc) { - text = date.toUTCString(); - } else { - text = date.toLocaleString(); + if (isoDate) { + const date = new Date(isoDate); + let text: string; + if (utc) { + text = date.toUTCString(); + } else { + text = date.toLocaleString(); + } + return text === 'Invalid Date' ? '(none)' : text; } - return text === 'Invalid Date' ? '(none)' : text; - } - return '-'; + return '-'; }; export const formatFileSize = (size?: number | string) => { - if (typeof size === 'number') { - if (size === 0) { - return '0 B'; - } + if (typeof size === 'number') { + if (size === 0) { + return '0 B'; + } - for (const { base, unit } of FILE_SIZES) { - if (size >= base) { - return `${(size / base).toFixed()} ${unit}`; - } + for (const { base, unit } of FILE_SIZES) { + if (size >= base) { + return `${(size / base).toFixed(base === 1 ? 0 : 1)} ${unit}`; + } + } } - } - if ((typeof size === 'string' && size === '') || size === undefined) { - return '-'; - } - return '0 B'; + if ((typeof size === 'string' && size === '') || size === undefined) { + return '-'; + } + return '0 B'; }; export const formatTime = (time: number, seconds?: boolean) => { - const minutes = Math.floor((time / (1000 * 60)) % 60).toFixed(0); - const hours = Math.floor(time / (1000 * 60 * 60)).toFixed(0); + const minutes = Math.floor((time / (1000 * 60)) % 60).toFixed(0); + const hours = Math.floor(time / (1000 * 60 * 60)).toFixed(0); - if (seconds) { - const seconds = Math.floor((time / 1000) % 60).toFixed(0); - return hours + 'h ' + minutes + 'm ' + seconds + 's'; - } + if (seconds) { + const seconds = Math.floor((time / 1000) % 60).toFixed(0); + return hours + 'h ' + minutes + 'm ' + seconds + 's'; + } - return hours + 'h ' + minutes + 'm'; + return hours + 'h ' + minutes + 'm'; }; export const getTimeDiff = (endTime: string, startTime: string) => { - return new Date(endTime).getTime() - new Date(startTime).getTime(); + return new Date(endTime).getTime() - new Date(startTime).getTime(); }; export const formatProgress = (loaded: number, total: number) => { - const progress = loaded >= 0 && total > 0 ? (loaded * 100) / total : 0; - return `${progress.toFixed(2)}%`; + 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 + prevLoaded: number, + loaded: number, + prevTime: number, + currentTime: number ) { - const speed = - loaded > prevLoaded && currentTime > prevTime - ? (loaded - prevLoaded) / (currentTime - prevTime) - : 0; + const speed = + loaded > prevLoaded && currentTime > prevTime + ? (loaded - prevLoaded) / (currentTime - prevTime) + : 0; - return `${(speed / 1000).toFixed(2)} MB/s`; + return `${(speed / 1000).toFixed(2)} MB/s`; } const FILE_SIZES = [ - { - base: 1099511627776, - unit: 'TB', - }, - { - base: 1073741824, - unit: 'GB', - }, - { - base: 1048576, - unit: 'MB', - }, - { - base: 1024, - unit: 'KB', - }, - { - base: 1, - unit: 'B', - }, + { + base: 1099511627776, + unit: 'TiB', + }, + { + base: 1073741824, + unit: 'GiB', + }, + { + base: 1048576, + unit: 'MiB', + }, + { + base: 1024, + unit: 'KiB', + }, + { + base: 1, + unit: 'B', + }, ]; export const formatPropertyValue = ( - pv: PropertyValue, - vocabulary?: Vocabulary + pv: PropertyValue, + vocabulary?: Vocabulary ) => { - if (vocabulary && pv.keyID && pv.valueID) { - return `${getTagKeyLabel(pv.keyID, vocabulary)}: ${getTagValueLabel( - pv.keyID, - pv.valueID!, - vocabulary - )}`; - } - if (pv.key) { - return pv.value ? `${pv.key}: ${pv.value}` : pv.key; - } - return ''; + if (vocabulary && pv.keyID && pv.valueID) { + return `${getTagKeyLabel(pv.keyID, vocabulary)}: ${getTagValueLabel( + pv.keyID, + pv.valueID!, + vocabulary + )}`; + } + if (pv.key) { + return pv.value ? `${pv.key}: ${pv.value}` : pv.key; + } + return ''; }; export const formatContainerCost = (cost: number): string => { - const decimalPlaces = 3; + const decimalPlaces = 3; - const factor = Math.pow(10, decimalPlaces); - const rounded = Math.round(cost * factor) / factor; - if (cost > 0 && rounded === 0) { - // Display min value of 0.001 - return `$${1 / factor}`; - } else { - // Otherwise use rounded value to proper decimal places - return `$${rounded}`; - } + const factor = Math.pow(10, decimalPlaces); + const rounded = Math.round(cost * factor) / factor; + if (cost > 0 && rounded === 0) { + // Display min value of 0.001 + return `$${1 / factor}`; + } else { + // Otherwise use rounded value to proper decimal places + return `$${rounded}`; + } };