From d6d18d7e60e166d1221f326bfc82aa4de6603ff8 Mon Sep 17 00:00:00 2001 From: Xavier Abad <77491413+masterprog-cmd@users.noreply.github.com> Date: Wed, 25 Sep 2024 12:58:31 +0200 Subject: [PATCH] fix: allow void and Promises for action function (context menu) --- .../DriveItemContextMenu.tsx | 50 +++++++++---------- src/app/shared/components/List/ListItem.tsx | 2 +- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/app/drive/components/DriveExplorer/DriveExplorerList/DriveItemContextMenu.tsx b/src/app/drive/components/DriveExplorer/DriveExplorerList/DriveItemContextMenu.tsx index 72d9f3b07..9b1656dbc 100644 --- a/src/app/drive/components/DriveExplorer/DriveExplorerList/DriveItemContextMenu.tsx +++ b/src/app/drive/components/DriveExplorer/DriveExplorerList/DriveItemContextMenu.tsx @@ -145,12 +145,12 @@ const contextMenuSelectedItems = ({ }): ListItemMenu => [ { name: `${selectedItems.length} ${t('contextMenu.itemsSelected')}`, - action: () => ({}), + action: () => {}, disabled: () => { return true; }, }, - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getMoveItemMenuItem(moveItems), getDownloadMenuItem(downloadItems), { name: '', action: () => false, separator: true }, @@ -178,13 +178,13 @@ const contextMenuDriveNotSharedLink = ({ }): ListItemMenu => [ shareLinkMenuItem(shareLink), getCopyLinkMenuItem(getLink), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, openPreview && getOpenPreviewMenuItem(openPreview), showDetailsMenuItem(showDetails), getRenameMenuItem(renameItem), getMoveItemMenuItem(moveItem), getDownloadMenuItem(downloadItem), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getMoveToTrashMenuItem(moveToTrash), ]; @@ -207,12 +207,12 @@ const contextMenuDriveFolderNotSharedLink = ({ }): ListItemMenu => [ shareLinkMenuItem(shareLink), getCopyLinkMenuItem(getLink), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, showDetailsMenuItem(showDetails), getRenameMenuItem(renameItem), getMoveItemMenuItem(moveItem), getDownloadMenuItem(downloadItem), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getMoveToTrashMenuItem(moveToTrash), ]; @@ -236,13 +236,13 @@ const contextMenuDriveItemShared = ({ moveToTrash: (item: DriveItemData | (ListShareLinksItem & { code: string })) => void; }): ListItemMenu => [ ...[manageLinkAccessMenuItem(openShareAccessSettings), getCopyLinkMenuItem(copyLink)], - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, openPreview && getOpenPreviewMenuItem(openPreview), showDetailsMenuItem(showDetails), getRenameMenuItem(renameItem), getMoveItemMenuItem(moveItem), getDownloadMenuItem(downloadItem), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getMoveToTrashMenuItem(moveToTrash), ]; @@ -264,12 +264,12 @@ const contextMenuDriveFolderShared = ({ moveToTrash: (item: DriveItemData | (ListShareLinksItem & { code: string })) => void; }): ListItemMenu => [ ...[manageLinkAccessMenuItem(openShareAccessSettings), getCopyLinkMenuItem(copyLink)], - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, showDetailsMenuItem(showDetails), getRenameMenuItem(renameItem), getMoveItemMenuItem(moveItem), getDownloadMenuItem(downloadItem), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getMoveToTrashMenuItem(moveToTrash), ]; @@ -281,7 +281,7 @@ const contextMenuMultipleSharedView = ({ moveToTrash: (item: ListShareLinksItem) => void; }): ListItemMenu => [ getDownloadMenuItem(downloadItem), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getMoveToTrashMenuItem(moveToTrash), ]; @@ -296,7 +296,7 @@ const contextMenuTrashItems = ({ }): ListItemMenu => [ openPreview && getOpenPreviewMenuItem(openPreview), getRestoreMenuItem(restoreItem), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getDeletePermanentlyMenuItem(deletePermanently), ]; @@ -308,7 +308,7 @@ const contextMenuTrashFolder = ({ deletePermanently: (item: DriveItemData) => void; }): ListItemMenu => [ getRestoreMenuItem(restoreItem), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getDeletePermanentlyMenuItem(deletePermanently), ]; @@ -320,7 +320,7 @@ const contextMenuMultipleSelectedTrashItems = ({ deletePermanently: (item: DriveItemData) => void; }): ListItemMenu => [ getRestoreMenuItem(restoreItem), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getDeletePermanentlyMenuItem(deletePermanently), ]; @@ -337,9 +337,7 @@ const contextMenuBackupItems = ({ action: () => { onDeviceDeleted(selectedDevices); }, - disabled: () => { - return false; - }, + disabled: () => false, }, ]; @@ -351,7 +349,7 @@ const contextMenuSelectedBackupItems = ({ onDeleteSelectedItems: () => Promise; }): ListItemMenu => [ getDownloadMenuItem(onDownloadSelectedItems), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, { name: t('drive.dropdown.delete'), icon: Trash, @@ -397,7 +395,7 @@ const contextMenuDriveItemSharedAFS = ({ renameItem && getRenameMenuItem(renameItem), moveItem && getMoveItemMenuItem(moveItem), getDownloadMenuItem(downloadItem), - moveToTrash && { name: '', action: () => false, separator: true }, + moveToTrash && { name: '', action: () => {}, separator: true }, moveToTrash && getMoveToTrashMenuItem(moveToTrash), ]; @@ -419,12 +417,12 @@ const contextMenuDriveFolderSharedAFS = ({ moveToTrash?: (item: any) => void; }): ListItemMenu => [ openShareAccessSettings && manageLinkAccessMenuItem(openShareAccessSettings), - openShareAccessSettings && { name: '', action: () => false, separator: true }, + openShareAccessSettings && { name: '', action: () => {}, separator: true }, showDetailsMenuItem(showDetails), renameItem && getRenameMenuItem(renameItem), moveItem && getMoveItemMenuItem(moveItem), getDownloadMenuItem(downloadItem), - moveToTrash && { name: '', action: () => false, separator: true }, + moveToTrash && { name: '', action: () => {}, separator: true }, moveToTrash && getMoveToTrashMenuItem(moveToTrash), ]; @@ -436,7 +434,7 @@ const contextMenuMultipleSharedViewAFS = ({ moveToTrash?: (item: AdvancedSharedItem) => void; }): ListItemMenu => [ getDownloadMenuItem(downloadItem), - moveToTrash && { name: '', action: () => false, separator: true }, + moveToTrash && { name: '', action: () => {}, separator: true }, moveToTrash && getMoveToTrashMenuItem(moveToTrash), ]; @@ -462,12 +460,12 @@ const contextMenuWorkspaceFolder = ({ shareLinkMenuItem(shareLink), getCopyLinkMenuItem(getLink), shareWithTeamMenuItem(shareWithTeam), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, showDetailsMenuItem(showDetails), getRenameMenuItem(renameItem), getMoveItemMenuItem(moveItem), getDownloadMenuItem(downloadItem), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getMoveToTrashMenuItem(moveToTrash), ]; @@ -495,13 +493,13 @@ const contextMenuWorkspaceFile = ({ shareLinkMenuItem(shareLink), getCopyLinkMenuItem(getLink), shareWithTeamMenuItem(shareWithTeam), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, openPreview && getOpenPreviewMenuItem(openPreview), showDetailsMenuItem(showDetails), getRenameMenuItem(renameItem), getMoveItemMenuItem(moveItem), getDownloadMenuItem(downloadItem), - { name: '', action: () => false, separator: true }, + { name: '', action: () => {}, separator: true }, getMoveToTrashMenuItem(moveToTrash), ]; diff --git a/src/app/shared/components/List/ListItem.tsx b/src/app/shared/components/List/ListItem.tsx index 1ba284e77..475c0a475 100644 --- a/src/app/shared/components/List/ListItem.tsx +++ b/src/app/shared/components/List/ListItem.tsx @@ -13,7 +13,7 @@ export type ListItemMenu = Array< keyboardShortcutIcon?: React.ForwardRefExoticComponent<{ size?: number | string }>; keyboardShortcutText?: string; }; - action: (target: T) => void; + action: (target: T) => void | Promise; disabled?: (target: T) => boolean; } | undefined