Add share action to listed objects (#1052)
Signed-off-by: Lenin Alevski <alevsk.8772@gmail.com>
This commit is contained in:
@@ -96,6 +96,7 @@ import {
|
||||
FileXlsIcon,
|
||||
FileZipIcon,
|
||||
} from "../../../../../../icons";
|
||||
import ShareFile from "../ObjectDetails/ShareFile";
|
||||
|
||||
const commonIcon = {
|
||||
backgroundRepeat: "no-repeat",
|
||||
@@ -263,6 +264,7 @@ const ListObjects = ({
|
||||
const [selectedPreview, setSelectedPreview] = useState<BucketObject | null>(
|
||||
null
|
||||
);
|
||||
const [shareFileModalOpen, setShareFileModalOpen] = useState<boolean>(false);
|
||||
|
||||
const internalPaths = get(match.params, "subpaths", "");
|
||||
const bucketName = match.params["bucketName"];
|
||||
@@ -628,10 +630,19 @@ const ListObjects = ({
|
||||
|
||||
const openPreview = (fileObject: BucketObject) => {
|
||||
setSelectedPreview(fileObject);
|
||||
|
||||
setPreviewOpen(true);
|
||||
};
|
||||
|
||||
const openShare = (fileObject: BucketObject) => {
|
||||
setSelectedPreview(fileObject);
|
||||
setShareFileModalOpen(true);
|
||||
};
|
||||
|
||||
const closeShareModal = () => {
|
||||
setShareFileModalOpen(false);
|
||||
setSelectedPreview(null);
|
||||
};
|
||||
|
||||
const tableActions = [
|
||||
{ type: "view", onClick: openPath, sendOnlyId: true },
|
||||
{
|
||||
@@ -640,6 +651,11 @@ const ListObjects = ({
|
||||
disableButtonFunction: (item: string) =>
|
||||
extensionPreview(item) === "none",
|
||||
},
|
||||
{
|
||||
type: "share",
|
||||
onClick: openShare,
|
||||
disableButtonFunction: (item: string) => item.endsWith("/"),
|
||||
},
|
||||
{
|
||||
type: "download",
|
||||
onClick: downloadObject,
|
||||
@@ -788,13 +804,11 @@ const ListObjects = ({
|
||||
|
||||
const rewindCloseModal = (refresh: boolean) => {
|
||||
setRewindSelect(false);
|
||||
|
||||
if (refresh) {
|
||||
}
|
||||
};
|
||||
|
||||
const closePreviewWindow = () => {
|
||||
setPreviewOpen(false);
|
||||
setSelectedPreview(null);
|
||||
};
|
||||
|
||||
const selectListObjects = (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||
@@ -873,6 +887,18 @@ const ListObjects = ({
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
{shareFileModalOpen && selectedPreview && (
|
||||
<ShareFile
|
||||
open={shareFileModalOpen}
|
||||
closeModalAndRefresh={closeShareModal}
|
||||
bucketName={bucketName}
|
||||
dataObject={{
|
||||
name: selectedPreview.name,
|
||||
last_modified: "",
|
||||
version_id: selectedPreview.version_id,
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
{deleteOpen && (
|
||||
<DeleteObject
|
||||
deleteOpen={deleteOpen}
|
||||
|
||||
@@ -24,8 +24,6 @@ import { CircleIcon, VersionIcon } from "../../../../icons";
|
||||
import get from "lodash/get";
|
||||
import { commonDashboardInfocard } from "../../Common/FormComponents/common/styleLibrary";
|
||||
|
||||
|
||||
|
||||
const styles = (theme: Theme) =>
|
||||
createStyles({
|
||||
...commonDashboardInfocard,
|
||||
|
||||
@@ -43,8 +43,8 @@ const styles = (theme: Theme) =>
|
||||
marginRight: 10,
|
||||
},
|
||||
widgetValue: {
|
||||
marginRight: 25,
|
||||
}
|
||||
marginRight: 25,
|
||||
},
|
||||
});
|
||||
|
||||
const SimpleWidget = ({ classes, iconWidget, label, value }: ISimpleWidget) => {
|
||||
|
||||
Reference in New Issue
Block a user