// SPDX-License-Identifier: AGPL-3.0
import { unionize, ofType, UnionOf } from '~/common/unionize';
-import { ContextMenuPosition, ContextMenuResource } from "./context-menu-reducer";
+import { ContextMenuPosition } from "./context-menu-reducer";
import { ContextMenuKind } from '~/views-components/context-menu/context-menu';
import { Dispatch } from 'redux';
import { RootState } from '~/store/store';
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';
export const contextMenuActions = unionize({
OPEN_CONTEXT_MENU: ofType<{ position: ContextMenuPosition, resource: ContextMenuResource }>(),
uuid: string;
ownerUuid: string;
description?: string;
- kind: ContextMenuKind;
+ kind: ResourceKind,
+ menuKind: ContextMenuKind;
isTrashed?: boolean;
};
name: '',
uuid: res.uuid,
ownerUuid: res.uuid,
- kind: ContextMenuKind.ROOT_PROJECT,
+ kind: res.kind,
+ menuKind: ContextMenuKind.ROOT_PROJECT,
isTrashed: false
}));
}
dispatch<any>(openContextMenu(event, {
name: res.name,
uuid: res.uuid,
- kind: ContextMenuKind.PROJECT,
+ kind: res.kind,
+ menuKind: ContextMenuKind.PROJECT,
ownerUuid: res.ownerUuid,
isTrashed: res.isTrashed
}));
export const openProcessContextMenu = (event: React.MouseEvent<HTMLElement>) =>
(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,
+ ownerUuid: '',
+ kind: ResourceKind.PROCESS,
name: '',
description: '',
- kind: ContextMenuKind.PROCESS
+ menuKind: ContextMenuKind.PROCESS
};
dispatch<any>(openContextMenu(event, resource));
};
return ContextMenuKind.PROJECT;
case ResourceKind.COLLECTION:
return ContextMenuKind.COLLECTION_RESOURCE;
+ case ResourceKind.PROCESS:
+ return ContextMenuKind.PROCESS_RESOURCE;
case ResourceKind.USER:
return ContextMenuKind.ROOT_PROJECT;
default: