X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/151c8c646b7fd78fc9ca2b8174eae11bce67873f..f9ee4d6b8debaacd44deebe07ab7ff89ce209c1c:/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 d85059d6e1..32bc47b6b8 100644 --- a/src/store/context-menu/context-menu-actions.ts +++ b/src/store/context-menu/context-menu-actions.ts @@ -31,18 +31,35 @@ export type ContextMenuResource = { menuKind: ContextMenuKind; isTrashed?: boolean; }; - +export const isKeyboardClick = (event: React.MouseEvent) => + event.nativeEvent.detail === 0; export const openContextMenu = (event: React.MouseEvent, resource: ContextMenuResource) => (dispatch: Dispatch) => { event.preventDefault(); + const { left, top } = event.currentTarget.getBoundingClientRect(); dispatch( contextMenuActions.OPEN_CONTEXT_MENU({ - position: { x: event.clientX, y: event.clientY }, + position: { + x: event.clientX || left, + y: event.clientY || top, + }, resource }) ); }; +export const openCollectionFilesContextMenu = (event: React.MouseEvent) => + (dispatch: Dispatch, getState: () => RootState) => { + const isCollectionFileSelected = JSON.stringify(getState().collectionPanelFiles).includes('"selected":true'); + dispatch(openContextMenu(event, { + name: '', + uuid: '', + ownerUuid: '', + kind: ResourceKind.COLLECTION, + menuKind: isCollectionFileSelected ? ContextMenuKind.COLLECTION_FILES : ContextMenuKind.COLLECTION_FILES_NOT_SELECTED + })); + }; + export const openRootProjectContextMenu = (event: React.MouseEvent, projectUuid: string) => (dispatch: Dispatch, getState: () => RootState) => { const res = getResource(projectUuid)(getState().resources);