X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ad73e81695d3501253f64acd5a63e83deb45c279..15469ba0284ac7d26de058cff4ae4e6ce6abc74f:/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 71da498f59..f846d25ba5 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 }>(), @@ -47,7 +48,7 @@ export type ContextMenuResource = { storageClassesDesired?: string[]; properties?: { [key: string]: string | string[] }; isMulti?: boolean; - isSingle?: boolean; + fromContextMenu?: boolean; }; export const isKeyboardClick = (event: React.MouseEvent) => event.nativeEvent.detail === 0; @@ -68,7 +69,8 @@ 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: "", @@ -76,11 +78,16 @@ export const openCollectionFilesContextMenu = ownerUuid: "", description: "", kind: ResourceKind.COLLECTION, - menuKind: isCollectionFileSelected - ? isWritable - ? ContextMenuKind.COLLECTION_FILES - : ContextMenuKind.READONLY_COLLECTION_FILES - : ContextMenuKind.COLLECTION_FILES_NOT_SELECTED, + menuKind: + selectedCount > 0 + ? isWritable + ? multiple + ? ContextMenuKind.COLLECTION_FILES_MULTIPLE + : ContextMenuKind.COLLECTION_FILES + : multiple + ? ContextMenuKind.READONLY_COLLECTION_FILES_MULTIPLE + : ContextMenuKind.READONLY_COLLECTION_FILES + : ContextMenuKind.COLLECTION_FILES_NOT_SELECTED, }) ); };