From e5cc4a3d3a7107ac7bb89196753439be29fe99f2 Mon Sep 17 00:00:00 2001 From: Alex <33497058+bexsoft@users.noreply.github.com> Date: Sat, 7 May 2022 18:51:50 -0500 Subject: [PATCH] Fixed loader visibility in object details page (#1962) --- .../Objects/ListObjects/ObjectDetailPanel.tsx | 329 +++++++++--------- 1 file changed, 168 insertions(+), 161 deletions(-) diff --git a/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectDetailPanel.tsx b/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectDetailPanel.tsx index 3b79e81f3..fbabe8bb2 100644 --- a/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectDetailPanel.tsx +++ b/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectDetailPanel.tsx @@ -16,7 +16,7 @@ import React, { Fragment, useEffect, useState } from "react"; import { connect } from "react-redux"; -import { Box, Button, LinearProgress } from "@mui/material"; +import { Box, Button } from "@mui/material"; import { withStyles } from "@mui/styles"; import createStyles from "@mui/styles/createStyles"; import get from "lodash/get"; @@ -81,6 +81,7 @@ import ActionsListSection from "./ActionsListSection"; import { displayFileIconName } from "./utils"; import TagsModal from "../ObjectDetails/TagsModal"; import InspectObject from "./InspectObject"; +import Loader from "../../../../Common/Loader/Loader"; const styles = () => createStyles({ @@ -200,12 +201,6 @@ const ObjectDetailPanel = ({ objectNameArray = actualInfo.name.split("/"); } - useEffect(() => { - if (bucketName !== "" && internalPaths) { - setLoadingObjectInfo(true); - } - }, [internalPaths, bucketName, setLoadingObjectInfo]); - useEffect(() => { if (distributedSetup && allInfoElements && allInfoElements.length >= 1) { let infoElement = @@ -368,7 +363,17 @@ const ObjectDetailPanel = ({ } }; + const loaderForContainer = ( +
+ +
+ ); + if (!actualInfo) { + if (loadingObjectInfo) { + return loaderForContainer; + } + return null; } @@ -568,162 +573,164 @@ const ObjectDetailPanel = ({ /> )} - {!actualInfo && ( - - - - )} - - - {displayFileIconName(objectName, true)} - {objectName} - - } - items={multiActionButtons} - /> - - - - - - - - Object Info - - - - Name: -
- {objectName} -
- {selectedVersion !== "" && ( - - Version ID: -
- {selectedVersion} -
- )} - - Size: -
- {niceBytes(actualInfo.size || "0")} -
- {actualInfo.version_id && - actualInfo.version_id !== "null" && - selectedVersion === "" && ( - - Versions: -
- {versions.length} version{versions.length !== 1 ? "s" : ""},{" "} - {niceBytesInt(totalVersionsSize)} -
- )} - {selectedVersion === "" && ( - - Last Modified: -
- {calculateLastModifyTime(actualInfo.last_modified)} -
- )} - - ETAG: -
- {actualInfo.etag || "N/A"} -
- - Tags: -
- {tagKeys.length === 0 - ? "N/A" - : tagKeys.map((tagKey, index) => { - return ( - - {tagKey}:{get(actualInfo, `tags.${tagKey}`, "")} - {index < tagKeys.length - 1 ? ", " : ""} + {loadingObjectInfo ? ( + {loaderForContainer} + ) : ( + + + {displayFileIconName(objectName, true)} + + {objectName} - ); - })} -
- - - - Legal Hold: -
- {actualInfo.legal_hold_status ? "On" : "Off"} -
-
-
- - - - Retention Policy: -
- - {actualInfo.version_id && actualInfo.version_id !== "null" ? ( - - {actualInfo.retention_mode - ? actualInfo.retention_mode.toLowerCase() - : "None"} - - ) : ( - - {actualInfo.retention_mode - ? actualInfo.retention_mode.toLowerCase() - : "None"} - - )} - -
-
-
- - Metadata - - - - {actualInfo ? ( - + } + items={multiActionButtons} /> - ) : null} - + + + + + + + + Object Info + + + + Name: +
+ {objectName} +
+ {selectedVersion !== "" && ( + + Version ID: +
+ {selectedVersion} +
+ )} + + Size: +
+ {niceBytes(actualInfo.size || "0")} +
+ {actualInfo.version_id && + actualInfo.version_id !== "null" && + selectedVersion === "" && ( + + Versions: +
+ {versions.length} version{versions.length !== 1 ? "s" : ""},{" "} + {niceBytesInt(totalVersionsSize)} +
+ )} + {selectedVersion === "" && ( + + Last Modified: +
+ {calculateLastModifyTime(actualInfo.last_modified)} +
+ )} + + ETAG: +
+ {actualInfo.etag || "N/A"} +
+ + Tags: +
+ {tagKeys.length === 0 + ? "N/A" + : tagKeys.map((tagKey, index) => { + return ( + + {tagKey}:{get(actualInfo, `tags.${tagKey}`, "")} + {index < tagKeys.length - 1 ? ", " : ""} + + ); + })} +
+ + + + Legal Hold: +
+ {actualInfo.legal_hold_status ? "On" : "Off"} +
+
+
+ + + + Retention Policy: +
+ + {actualInfo.version_id && actualInfo.version_id !== "null" ? ( + + {actualInfo.retention_mode + ? actualInfo.retention_mode.toLowerCase() + : "None"} + + ) : ( + + {actualInfo.retention_mode + ? actualInfo.retention_mode.toLowerCase() + : "None"} + + )} + +
+
+
+ + Metadata + + + + {actualInfo ? ( + + ) : null} + + + )} ); };