X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/a950096809e19f48ec006651227222d60e4fa86c..bc311e9eb8d6b0e4850823d4a9acd29d6176d06b:/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 eabf41ae..3ae79db4 100644 --- a/src/store/context-menu/context-menu-actions.ts +++ b/src/store/context-menu/context-menu-actions.ts @@ -13,6 +13,7 @@ import { UserResource } from '~/models/user'; import { isSidePanelTreeCategory } from '~/store/side-panel-tree/side-panel-tree-actions'; import { extractUuidKind, ResourceKind } from '~/models/resource'; import { matchProcessRoute } from '~/routes/routes'; +import { Process } from '~/store/processes/process'; export const contextMenuActions = unionize({ OPEN_CONTEXT_MENU: ofType<{ position: ContextMenuPosition, resource: ContextMenuResource }>(), @@ -30,13 +31,18 @@ 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 }) ); @@ -84,14 +90,10 @@ export const openSidePanelContextMenu = (event: React.MouseEvent, i } }; -export const openProcessContextMenu = (event: React.MouseEvent) => +export const openProcessContextMenu = (event: React.MouseEvent, process: Process) => (dispatch: Dispatch, getState: () => RootState) => { - const { location } = getState().router; - const pathname = location ? location.pathname : ''; - const match = matchProcessRoute(pathname); - const uuid = match ? match.params.id : ''; const resource = { - uuid, + uuid: process.containerRequest.uuid, ownerUuid: '', kind: ResourceKind.PROCESS, name: '',