diff --git a/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/FileVersionItem.tsx b/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/FileVersionItem.tsx
index 964f3b39b..73cdbe1ef 100644
--- a/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/FileVersionItem.tsx
+++ b/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/FileVersionItem.tsx
@@ -35,6 +35,7 @@ interface IFileVersionItem {
fileName: string;
versionInfo: IFileInfo;
index: number;
+ isSelected?: boolean;
onShare: (versionInfo: IFileInfo) => void;
onDownload: (versionInfo: IFileInfo) => void;
onRestore: (versionInfo: IFileInfo) => void;
@@ -48,9 +49,18 @@ const styles = (theme: Theme) =>
mainFileVersionItem: {
borderBottom: "#E2E2E2 1px solid",
padding: "1rem 0",
- margin: "0 2rem 0 3.5rem",
+ margin: "0 0.5rem 0 2.5rem",
cursor: "pointer",
},
+ intermediateLayer: {
+ margin: "0 1.5rem 0 1.5rem",
+ "&:hover, &.selected": {
+ backgroundColor: "#F8F8F8",
+ "& > div": {
+ borderBottomColor: "#F8F8F8",
+ },
+ },
+ },
versionContainer: {
fontSize: 16,
fontWeight: "bold",
@@ -97,6 +107,7 @@ const FileVersionItem = ({
classes,
fileName,
versionInfo,
+ isSelected,
onShare,
onDownload,
onRestore,
@@ -138,73 +149,83 @@ const FileVersionItem = ({
globalClick(versionInfo);
}}
>
-
-
-
-
- {displayFileIconName(fileName, true)} v{index.toString()}
-
-
- {versionItemButtons.map((button, index) => {
- return (
-
-
+
+
+
+
+ {displayFileIconName(fileName, true)} v{index.toString()}
+
+
+ {versionItemButtons.map((button, index) => {
+ return (
+ {
- e.stopPropagation();
- if (!disableButtons) {
- button.action(versionInfo);
- } else {
- e.preventDefault();
- }
- }}
- sx={{
- backgroundColor: "#F8F8F8",
- borderRadius: "100%",
- width: "28px",
- height: "28px",
- padding: "5px",
- "& .min-icon": {
- width: "14px",
- height: "14px",
- },
- }}
>
- {button.icon}
-
-
- );
- })}
+ {
+ e.stopPropagation();
+ if (!disableButtons) {
+ button.action(versionInfo);
+ } else {
+ e.preventDefault();
+ }
+ }}
+ sx={{
+ backgroundColor: "#F8F8F8",
+ borderRadius: "100%",
+ width: "28px",
+ height: "28px",
+ padding: "5px",
+ "& .min-icon": {
+ width: "14px",
+ height: "14px",
+ },
+ }}
+ >
+ {button.icon}
+
+
+ );
+ })}
+
-
-
- {versionInfo.version_id}
-
-
-
- Last modified:{" "}
-
- {versionInfo.last_modified}
-
-
-
- Size: {niceBytes(versionInfo.size || "0")}
-
-
- Deleted:{" "}
- {versionInfo.is_delete_marker ? "Yes" : "No"}
-
+
+ {versionInfo.version_id}
+
+
+
+ Last modified:{" "}
+
+ {versionInfo.last_modified}
+
+
+
+ Size: {niceBytes(versionInfo.size || "0")}
+
+
+ Deleted:{" "}
+ {versionInfo.is_delete_marker ? "Yes" : "No"}
+
+
diff --git a/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/VersionsNavigator.tsx b/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/VersionsNavigator.tsx
index ed200144a..86f25a001 100644
--- a/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/VersionsNavigator.tsx
+++ b/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/VersionsNavigator.tsx
@@ -113,6 +113,7 @@ interface IVersionsNavigatorProps {
bucketName: string;
searchVersions: string;
loadingVersions: boolean;
+ selectedVersion: string;
setErrorSnackMessage: typeof setErrorSnackMessage;
setSnackBarMessage: typeof setSnackBarMessage;
setNewObject: typeof setNewObject;
@@ -143,6 +144,7 @@ const VersionsNavigator = ({
updateProgress,
searchVersions,
loadingVersions,
+ selectedVersion,
completeObject,
internalPaths,
bucketName,
@@ -329,6 +331,7 @@ const VersionsNavigator = ({
onShare={onShareItem}
onPreview={onPreviewItem}
globalClick={onGlobalClick}
+ isSelected={selectedVersion === item.version_id}
/>
);
};
@@ -441,7 +444,7 @@ const VersionsNavigator = ({
)}
@@ -456,6 +459,7 @@ const mapStateToProps = ({ system, objectBrowser }: AppState) => ({
distributedSetup: get(system, "distributedSetup", false),
searchVersions: objectBrowser.searchVersions,
loadingVersions: objectBrowser.loadingVersions,
+ selectedVersion: objectBrowser.selectedVersion,
});
const mapDispatchToProps = {