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 44a13949b..64170931f 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 @@ -346,10 +346,6 @@ const ObjectDetailPanel = ({ } }; - const closePreviewWindow = () => { - setPreviewOpen(false); - }; - if (!actualInfo) { return null; } @@ -514,7 +510,9 @@ const ObjectDetailPanel = ({ content_type: "", last_modified: new Date(actualInfo.last_modified), }} - onClosePreview={closePreviewWindow} + onClosePreview={() => { + setPreviewOpen(false); + }} /> )} {tagModalOpen && actualInfo && ( 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 e825290e2..834c2816e 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 @@ -23,7 +23,12 @@ import { withStyles } from "@mui/styles"; import { displayFileIconName } from "../ListObjects/utils"; import { IFileInfo } from "./types"; import { IconButton, Tooltip } from "@mui/material"; -import { DownloadIcon, RecoverIcon, ShareIcon } from "../../../../../../icons"; +import { + DownloadIcon, + PreviewIcon, + RecoverIcon, + ShareIcon, +} from "../../../../../../icons"; interface IFileVersionItem { fileName: string; @@ -32,6 +37,7 @@ interface IFileVersionItem { onShare: (versionInfo: IFileInfo) => void; onDownload: (versionInfo: IFileInfo) => void; onRestore: (versionInfo: IFileInfo) => void; + onPreview: (versionInfo: IFileInfo) => void; globalClick: (versionInfo: IFileInfo) => void; classes: any; } @@ -93,12 +99,18 @@ const FileVersionItem = ({ onShare, onDownload, onRestore, + onPreview, globalClick, index, }: IFileVersionItem) => { const disableButtons = versionInfo.is_delete_marker; const versionItemButtons = [ + { + icon: , + action: onPreview, + tooltip: "Preview", + }, { icon: , action: onDownload, 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 6afd6a7cd..b18efc169 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 @@ -57,6 +57,7 @@ import { VersionsIcon } from "../../../../../../icons"; import VirtualizedList from "../../../../Common/VirtualizedList/VirtualizedList"; import FileVersionItem from "./FileVersionItem"; import SelectWrapper from "../../../../Common/FormComponents/SelectWrapper/SelectWrapper"; +import PreviewFileModal from "../Preview/PreviewFileModal"; const styles = (theme: Theme) => createStyles({ @@ -149,6 +150,7 @@ const VersionsNavigator = ({ const [restoreVersionOpen, setRestoreVersionOpen] = useState(false); const [restoreVersion, setRestoreVersion] = useState(""); const [sortValue, setSortValue] = useState("date"); + const [previewOpen, setPreviewOpen] = useState(false); // calculate object name to display let objectNameArray: string[] = []; @@ -199,6 +201,7 @@ const VersionsNavigator = ({ const closeShareModal = () => { setObjectToShare(null); setShareFileModalOpen(false); + setPreviewOpen(false); }; const downloadObject = (object: IFileInfo) => { @@ -235,6 +238,11 @@ const VersionsNavigator = ({ shareObject(); }; + const onPreviewItem = (item: IFileInfo) => { + setObjectToShare(item); + setPreviewOpen(true); + }; + const onRestoreItem = (item: IFileInfo) => { setRestoreVersion(item.version_id || ""); setRestoreVersionOpen(true); @@ -318,6 +326,7 @@ const VersionsNavigator = ({ onDownload={onDownloadItem} onRestore={onRestoreItem} onShare={onShareItem} + onPreview={onPreviewItem} globalClick={onGlobalClick} /> ); @@ -342,6 +351,27 @@ const VersionsNavigator = ({ onCloseAndUpdate={closeRestoreModal} /> )} + {previewOpen && actualInfo && ( + { + setPreviewOpen(false); + }} + /> + )} {!actualInfo && (