Web: Returned old solution with disabled context menu item.

This commit is contained in:
Tatiana Lopaeva 2021-09-17 15:14:11 +03:00
parent e22d88fc3d
commit 19b82b1ed3
2 changed files with 92 additions and 120 deletions

View File

@ -49,11 +49,9 @@ class GroupButtonsMenu extends React.Component {
};
componentDidMount() {
this.groupMenuElement = document.getElementById("groupMenu");
const groupMenuElement = document.getElementById("groupMenu");
const groupMenuItems = this.groupMenuElement
? this.groupMenuElement.children
: [0];
const groupMenuItems = groupMenuElement ? groupMenuElement.children : [0];
const groupMenuItemsArray = [...groupMenuItems];
this.widthsArray = groupMenuItemsArray.map((item) => item.offsetWidth);
@ -75,19 +73,6 @@ class GroupButtonsMenu extends React.Component {
this.state.moreItems.length !== prevState.moreItems.length ||
this.props.menuItems !== prevProps.menuItems
) {
if (
this.state.priorityItems.length !== prevState.priorityItems.length &&
this.props.sectionWidth === prevProps.sectionWidth &&
this.state.moreItems.length === prevState.moreItems.length &&
this.state.moreItems.length === 0
) {
const groupMenuItems = this.groupMenuElement
? this.groupMenuElement.children
: [0];
const groupMenuItemsArray = [...groupMenuItems];
this.widthsArray = groupMenuItemsArray.map((item) => item.offsetWidth);
}
this.updateMenu();
}
}

View File

@ -693,120 +693,107 @@ class FilesActionStore {
setEmptyTrashDialogVisible,
} = this.dialogsStore;
const removeDownloadAs = !hasSelection || !isWebEditSelected;
const headerMenu = [
{
label: t("Share"),
disabled: !isAccessedSelected, //isFavoritesFolder || isRecentFolder
onClick: () => setSharingPanelVisible(true),
},
{
label: t("Common:Download"),
disabled: !hasSelection,
onClick: () =>
this.downloadAction(t("Translations:ArchivingData")).catch((err) =>
toastr.error(err)
),
},
{
label: t("Translations:DownloadAs"),
disabled: !hasSelection || !isWebEditSelected,
onClick: () => setDownloadDialogVisible(true),
},
{
label: t("MoveTo"),
disabled:
isFavoritesFolder ||
isRecentFolder ||
!isAccessedSelected ||
!hasSelection ||
isThirdPartyRootSelection,
onClick: () => setMoveToPanelVisible(true),
},
{
label: t("Translations:Copy"),
disabled: !hasSelection,
onClick: () => setCopyPanelVisible(true),
},
{
label: t("Common:Delete"),
disabled: !hasSelection || isThirdPartyRootSelection,
onClick: () => {
if (this.settingsStore.confirmDelete) {
setDeleteDialogVisible(true);
} else {
const translations = {
deleteOperation: t("Translations:DeleteOperation"),
deleteFromTrash: t("Translations:DeleteFromTrash"),
deleteSelectedElem: t("Translations:DeleteSelectedElem"),
};
const removeShare = !isAccessedSelected; //isFavoritesFolder || isRecentFolder
const removeDownload = !hasSelection;
const removeMoveTo =
isFavoritesFolder ||
isRecentFolder ||
!isAccessedSelected ||
!hasSelection ||
isThirdPartyRootSelection;
const removeCopy = !hasSelection;
const removeDelete = !hasSelection || isThirdPartyRootSelection;
let itemsObj = new Map();
if (!removeShare) {
(!isPrivacyFolder || !this.authStore.settingsStore.personal) &&
itemsObj.set("share", {
label: t("Share"),
onClick: () => setSharingPanelVisible(true),
});
}
if (!removeDownload) {
!isPrivacyFolder &&
itemsObj.set("download", {
label: t("Common:Download"),
onClick: () =>
this.downloadAction(t("Translations:ArchivingData")).catch((err) =>
toastr.error(err)
),
});
}
if (!removeDownloadAs) {
!isPrivacyFolder &&
itemsObj.set("downloadAs", {
label: t("Translations:DownloadAs"),
onClick: () => setDownloadDialogVisible(true),
});
}
if (!removeMoveTo) {
!isRecycleBinFolder &&
!isShareFolder &&
!isRecentFolder &&
!isFavoritesFolder &&
itemsObj.set("moveTo", {
label: t("MoveTo"),
onClick: () => setMoveToPanelVisible(true),
});
}
if (!removeCopy) {
!isRecycleBinFolder &&
itemsObj.set("copy", {
label: t("Translations:Copy"),
onClick: () => setCopyPanelVisible(true),
});
}
this.deleteAction(translations).catch((err) => toastr.error(err));
}
},
},
];
if (isRecycleBinFolder) {
itemsObj.set("restore", {
headerMenu.push({
label: t("EmptyRecycleBin"),
onClick: () => setEmptyTrashDialogVisible(true),
});
headerMenu.splice(3, 2, {
label: t("Translations:Restore"),
onClick: () => setMoveToPanelVisible(true),
});
}
if (!removeDelete) {
if (isFavoritesFolder) {
itemsObj.set("delete", {
label: t("Common:Delete"),
alt: t("RemoveFromFavorites"),
onClick: () => {
const items = selection.map((item) => item.id);
this.setFavoriteAction("remove", items)
.then(() => toastr.success(t("RemovedFromFavorites")))
.catch((err) => toastr.error(err));
},
});
} else {
!isRecentFolder &&
itemsObj.set("delete", {
label: t("Common:Delete"),
onClick: () => {
if (this.settingsStore.confirmDelete) {
setDeleteDialogVisible(true);
} else {
const translations = {
deleteOperation: t("Translations:DeleteOperation"),
deleteFromTrash: t("Translations:DeleteFromTrash"),
deleteSelectedElem: t("Translations:DeleteSelectedElem"),
};
this.deleteAction(translations).catch((err) =>
toastr.error(err)
);
}
},
});
}
}
if (isRecycleBinFolder) {
itemsObj.set("emptyRecycleBin", {
label: t("EmptyRecycleBin"),
onClick: () => setEmptyTrashDialogVisible(true),
if (isFavoritesFolder) {
headerMenu.splice(5, 1);
headerMenu.push({
label: t("Common:Delete"),
alt: t("RemoveFromFavorites"),
onClick: () => {
const items = selection.map((item) => item.id);
this.setFavoriteAction("remove", items)
.then(() => toastr.success(t("RemovedFromFavorites")))
.catch((err) => toastr.error(err));
},
});
}
const headerMenu = Array.from(itemsObj.values());
itemsObj.clear();
if (isPrivacyFolder) {
headerMenu.splice(0, 1);
headerMenu.splice(1, 1);
headerMenu.splice(2, 1);
}
if (isShareFolder) {
headerMenu.splice(3, 1);
}
if (isRecentFolder) {
headerMenu.splice(5, 1);
}
if (isRecentFolder || isFavoritesFolder) {
//headerMenu.splice(0, 1); TODO: need for develop
headerMenu.splice(3, 1);
}
if (this.authStore.settingsStore.personal) {
headerMenu.splice(0, 1);
}
return headerMenu;
};