diff --git a/src/custom/ResourceDetailFormatters/index.ts b/src/custom/ResourceDetailFormatters/index.ts index f03eb462..ed492a8c 100644 --- a/src/custom/ResourceDetailFormatters/index.ts +++ b/src/custom/ResourceDetailFormatters/index.ts @@ -15,7 +15,7 @@ import { TextWithLinkFormatter } from './Formatter'; import { useResourceCleanData } from './useResourceCleanData'; -import { extractPodVolumnTables, splitCamelCaseString } from './utils'; +import { convertToReadableUnit, extractPodVolumnTables, splitCamelCaseString } from './utils'; export { CodeFormatter, @@ -33,6 +33,7 @@ export { StatusFormatter, TableDataFormatter, TextWithLinkFormatter, + convertToReadableUnit, extractPodVolumnTables, splitCamelCaseString, useResourceCleanData diff --git a/src/custom/ResourceDetailFormatters/utils.ts b/src/custom/ResourceDetailFormatters/utils.ts index 932e84a7..74a16aff 100644 --- a/src/custom/ResourceDetailFormatters/utils.ts +++ b/src/custom/ResourceDetailFormatters/utils.ts @@ -89,3 +89,17 @@ export function isEmptyAtAllDepths(input: any): boolean { return _.isEmpty(input); } } + +export const convertToReadableUnit = (value: number): string => { + if (!value) return '0'; + + const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB']; + let index = 0; + + while (value >= 1024 && index < units.length - 1) { + value /= 1024; + index++; + } + + return `${value.toFixed(2)} ${units[index]}`; +};