Add preview icon to object versions (#1713)

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
This commit is contained in:
Daniel Valdivia
2022-03-14 15:48:20 -07:00
committed by GitHub
parent 1fa8311af7
commit 82bdc228b2
3 changed files with 46 additions and 6 deletions

View File

@@ -346,10 +346,6 @@ const ObjectDetailPanel = ({
} }
}; };
const closePreviewWindow = () => {
setPreviewOpen(false);
};
if (!actualInfo) { if (!actualInfo) {
return null; return null;
} }
@@ -514,7 +510,9 @@ const ObjectDetailPanel = ({
content_type: "", content_type: "",
last_modified: new Date(actualInfo.last_modified), last_modified: new Date(actualInfo.last_modified),
}} }}
onClosePreview={closePreviewWindow} onClosePreview={() => {
setPreviewOpen(false);
}}
/> />
)} )}
{tagModalOpen && actualInfo && ( {tagModalOpen && actualInfo && (

View File

@@ -23,7 +23,12 @@ import { withStyles } from "@mui/styles";
import { displayFileIconName } from "../ListObjects/utils"; import { displayFileIconName } from "../ListObjects/utils";
import { IFileInfo } from "./types"; import { IFileInfo } from "./types";
import { IconButton, Tooltip } from "@mui/material"; import { IconButton, Tooltip } from "@mui/material";
import { DownloadIcon, RecoverIcon, ShareIcon } from "../../../../../../icons"; import {
DownloadIcon,
PreviewIcon,
RecoverIcon,
ShareIcon,
} from "../../../../../../icons";
interface IFileVersionItem { interface IFileVersionItem {
fileName: string; fileName: string;
@@ -32,6 +37,7 @@ interface IFileVersionItem {
onShare: (versionInfo: IFileInfo) => void; onShare: (versionInfo: IFileInfo) => void;
onDownload: (versionInfo: IFileInfo) => void; onDownload: (versionInfo: IFileInfo) => void;
onRestore: (versionInfo: IFileInfo) => void; onRestore: (versionInfo: IFileInfo) => void;
onPreview: (versionInfo: IFileInfo) => void;
globalClick: (versionInfo: IFileInfo) => void; globalClick: (versionInfo: IFileInfo) => void;
classes: any; classes: any;
} }
@@ -93,12 +99,18 @@ const FileVersionItem = ({
onShare, onShare,
onDownload, onDownload,
onRestore, onRestore,
onPreview,
globalClick, globalClick,
index, index,
}: IFileVersionItem) => { }: IFileVersionItem) => {
const disableButtons = versionInfo.is_delete_marker; const disableButtons = versionInfo.is_delete_marker;
const versionItemButtons = [ const versionItemButtons = [
{
icon: <PreviewIcon />,
action: onPreview,
tooltip: "Preview",
},
{ {
icon: <DownloadIcon />, icon: <DownloadIcon />,
action: onDownload, action: onDownload,

View File

@@ -57,6 +57,7 @@ import { VersionsIcon } from "../../../../../../icons";
import VirtualizedList from "../../../../Common/VirtualizedList/VirtualizedList"; import VirtualizedList from "../../../../Common/VirtualizedList/VirtualizedList";
import FileVersionItem from "./FileVersionItem"; import FileVersionItem from "./FileVersionItem";
import SelectWrapper from "../../../../Common/FormComponents/SelectWrapper/SelectWrapper"; import SelectWrapper from "../../../../Common/FormComponents/SelectWrapper/SelectWrapper";
import PreviewFileModal from "../Preview/PreviewFileModal";
const styles = (theme: Theme) => const styles = (theme: Theme) =>
createStyles({ createStyles({
@@ -149,6 +150,7 @@ const VersionsNavigator = ({
const [restoreVersionOpen, setRestoreVersionOpen] = useState<boolean>(false); const [restoreVersionOpen, setRestoreVersionOpen] = useState<boolean>(false);
const [restoreVersion, setRestoreVersion] = useState<string>(""); const [restoreVersion, setRestoreVersion] = useState<string>("");
const [sortValue, setSortValue] = useState<string>("date"); const [sortValue, setSortValue] = useState<string>("date");
const [previewOpen, setPreviewOpen] = useState<boolean>(false);
// calculate object name to display // calculate object name to display
let objectNameArray: string[] = []; let objectNameArray: string[] = [];
@@ -199,6 +201,7 @@ const VersionsNavigator = ({
const closeShareModal = () => { const closeShareModal = () => {
setObjectToShare(null); setObjectToShare(null);
setShareFileModalOpen(false); setShareFileModalOpen(false);
setPreviewOpen(false);
}; };
const downloadObject = (object: IFileInfo) => { const downloadObject = (object: IFileInfo) => {
@@ -235,6 +238,11 @@ const VersionsNavigator = ({
shareObject(); shareObject();
}; };
const onPreviewItem = (item: IFileInfo) => {
setObjectToShare(item);
setPreviewOpen(true);
};
const onRestoreItem = (item: IFileInfo) => { const onRestoreItem = (item: IFileInfo) => {
setRestoreVersion(item.version_id || ""); setRestoreVersion(item.version_id || "");
setRestoreVersionOpen(true); setRestoreVersionOpen(true);
@@ -318,6 +326,7 @@ const VersionsNavigator = ({
onDownload={onDownloadItem} onDownload={onDownloadItem}
onRestore={onRestoreItem} onRestore={onRestoreItem}
onShare={onShareItem} onShare={onShareItem}
onPreview={onPreviewItem}
globalClick={onGlobalClick} globalClick={onGlobalClick}
/> />
); );
@@ -342,6 +351,27 @@ const VersionsNavigator = ({
onCloseAndUpdate={closeRestoreModal} onCloseAndUpdate={closeRestoreModal}
/> />
)} )}
{previewOpen && actualInfo && (
<PreviewFileModal
open={previewOpen}
bucketName={bucketName}
object={{
name: actualInfo.name,
version_id:
objectToShare && objectToShare.version_id
? objectToShare.version_id
: "null",
size: parseInt(
objectToShare && objectToShare.size ? objectToShare.size : "0"
),
content_type: "",
last_modified: new Date(actualInfo.last_modified),
}}
onClosePreview={() => {
setPreviewOpen(false);
}}
/>
)}
<Grid container className={classes.versionsContainer}> <Grid container className={classes.versionsContainer}>
{!actualInfo && ( {!actualInfo && (
<Grid item xs={12}> <Grid item xs={12}>