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}
- />
-
-
-
- }
- color="secondary"
- variant={"outlined"}
- onClick={() => {
- setDeleteOpen(true);
- }}
- disabled={selectedVersion === "" && actualInfo.is_delete_marker}
- sx={{
- width: "calc(100% - 44px)",
- margin: "8px 0",
- "& svg.min-icon": {
- width: 14,
- height: 14,
- },
- }}
- >
- Delete{selectedVersion !== "" ? " version" : ""}
-
-
-
-
- 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}
-
+
+
+
+ }
+ color="secondary"
+ variant={"outlined"}
+ onClick={() => {
+ setDeleteOpen(true);
+ }}
+ disabled={selectedVersion === "" && actualInfo.is_delete_marker}
+ sx={{
+ width: "calc(100% - 44px)",
+ margin: "8px 0",
+ "& svg.min-icon": {
+ width: 14,
+ height: 14,
+ },
+ }}
+ >
+ Delete{selectedVersion !== "" ? " version" : ""}
+
+
+
+
+ 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}
+
+
+ )}
);
};