From 40c3161416fa6048cb74a4633ca38d4479a3f2dc Mon Sep 17 00:00:00 2001 From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Date: Thu, 6 Jan 2022 21:17:20 -0800 Subject: [PATCH] Report N/A when usage is not yet known (#1369) * Report N/A when usage is not yet known Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> * lint Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> --- .../UsageBarWrapper/SummaryUsageBar.tsx | 48 ++++++++++++------- .../Tenants/ListTenants/TenantListItem.tsx | 7 +-- .../Console/Tenants/ListTenants/types.ts | 5 ++ .../Tenants/TenantDetails/TenantSummary.tsx | 6 +-- 4 files changed, 40 insertions(+), 26 deletions(-) diff --git a/portal-ui/src/screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx b/portal-ui/src/screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx index 15681ed41..97f1c5249 100644 --- a/portal-ui/src/screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx +++ b/portal-ui/src/screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx @@ -8,12 +8,13 @@ import CircularProgress from "@mui/material/CircularProgress"; import ErrorBlock from "../../../shared/ErrorBlock"; import { CircleIcon } from "../../../../icons"; import LabelValuePair from "./LabelValuePair"; +import { ValueUnit } from "../../Tenants/ListTenants/types"; +import { niceBytes } from "../../../../common/utils"; -interface IProgressBar { - maxValue: number; - currValue: number; +interface ISummaryUsageBar { + maxValue: number | undefined; + currValue: number | undefined; label: string; - renderFunction?: (element: string) => any; error: string; loading: boolean; classes: any; @@ -59,11 +60,29 @@ const SummaryUsageBar = ({ maxValue, currValue, healthStatus, - renderFunction, loading, error, -}: IProgressBar) => { - const porcentualValue = (currValue * 100) / maxValue; +}: ISummaryUsageBar) => { + var capacity: ValueUnit = { value: "n/a", unit: "" }; + var used: ValueUnit = { value: "n/a", unit: "" }; + + if (maxValue) { + const b = niceBytes(`${maxValue}`, true); + const parts = b.split(" "); + capacity.value = parts[0]; + capacity.unit = parts[1]; + } + if (currValue) { + const b = niceBytes(`${currValue}`, true); + const parts = b.split(" "); + used.value = parts[0]; + used.unit = parts[1]; + } + + let percentagelValue = 0; + if (currValue && maxValue) { + percentagelValue = (currValue * 100) / maxValue; + } const renderComponent = () => { if (!loading) { @@ -71,7 +90,10 @@ const SummaryUsageBar = ({ ) : ( - + {healthStatus && ( { const healthStatusToClass = (health_status: string) => { switch (health_status) { diff --git a/portal-ui/src/screens/Console/Tenants/ListTenants/types.ts b/portal-ui/src/screens/Console/Tenants/ListTenants/types.ts index 39ac7fb06..ed876e0ef 100644 --- a/portal-ui/src/screens/Console/Tenants/ListTenants/types.ts +++ b/portal-ui/src/screens/Console/Tenants/ListTenants/types.ts @@ -165,3 +165,8 @@ export interface IKeyValue { key: string; value: string; } + +export interface ValueUnit { + value: string; + unit: string; +} diff --git a/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx b/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx index 7ec0a2e16..4b5871fda 100644 --- a/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx +++ b/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx @@ -26,7 +26,6 @@ import { } from "../../Common/FormComponents/common/styleLibrary"; import { Box, Button, Grid, Stack } from "@mui/material"; import Paper from "@mui/material/Paper"; -import { niceBytes } from "../../../../common/utils"; import { ITenant } from "../ListTenants/types"; import UpdateTenantModal from "./UpdateTenantModal"; import { AppState } from "../../../../store"; @@ -134,10 +133,9 @@ const healthStatusToClass = (health_status: string = "red", classes: any) => { const StorageSummary = ({ tenant, classes }: Partial) => { return (