X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/84b0571030831cdd14fbbf36658cafee52face30..5afc1f6ee27b2135827d0f2976ed01ad0534ba62:/src/store/context-menu/context-menu-actions.ts diff --git a/src/store/context-menu/context-menu-actions.ts b/src/store/context-menu/context-menu-actions.ts index 3bc91ae0..4abfb372 100644 --- a/src/store/context-menu/context-menu-actions.ts +++ b/src/store/context-menu/context-menu-actions.ts @@ -23,6 +23,7 @@ import { GroupContentsResource } from 'services/groups-service/groups-service'; import { LinkResource } from 'models/link'; import { resourceIsFrozen } from 'common/frozen-resources'; import { ProjectResource } from 'models/project'; +import { filterCollectionFilesBySelection } from 'store/collection-panel/collection-panel-files/collection-panel-files-state'; export const contextMenuActions = unionize({ OPEN_CONTEXT_MENU: ofType<{ position: ContextMenuPosition, resource: ContextMenuResource }>(), @@ -67,17 +68,18 @@ export const openContextMenu = (event: React.MouseEvent, resource: export const openCollectionFilesContextMenu = (event: React.MouseEvent, isWritable: boolean) => (dispatch: Dispatch, getState: () => RootState) => { - const isCollectionFileSelected = JSON.stringify(getState().collectionPanelFiles).includes('"selected":true'); + const selectedCount = filterCollectionFilesBySelection(getState().collectionPanelFiles, true).length; + const multiple = selectedCount > 1; dispatch(openContextMenu(event, { name: '', uuid: '', ownerUuid: '', description: '', kind: ResourceKind.COLLECTION, - menuKind: isCollectionFileSelected + menuKind: selectedCount > 0 ? isWritable - ? ContextMenuKind.COLLECTION_FILES - : ContextMenuKind.READONLY_COLLECTION_FILES + ? multiple ? ContextMenuKind.COLLECTION_FILES_MULTIPLE : ContextMenuKind.COLLECTION_FILES + : multiple ? ContextMenuKind.READONLY_COLLECTION_FILES_MULTIPLE : ContextMenuKind.READONLY_COLLECTION_FILES : ContextMenuKind.COLLECTION_FILES_NOT_SELECTED })); }; @@ -272,7 +274,7 @@ export const resourceUuidToContextMenuKind = (uuid: string, readonly = false) => case ResourceKind.LINK: return ContextMenuKind.LINK; case ResourceKind.WORKFLOW: - return ContextMenuKind.WORKFLOW; + return isEditable ? ContextMenuKind.WORKFLOW : ContextMenuKind.READONLY_WORKFLOW; default: return; }