- componentWillReceiveProps({ match, currentItemId, onItemRouteChange }: ProjectPanelProps) {
- if (match.params.id !== currentItemId) {
- onItemRouteChange(match.params.id);
+ handleContextMenu = (event: React.MouseEvent<HTMLElement>, resourceUuid: string) => {
+ event.preventDefault();
+ const resource = getResource(resourceUuid)(this.props.resources) as CollectionResource | ProjectResource | undefined;
+ if (resource) {
+ let kind: ContextMenuKind;
+
+ if (resource.kind === ResourceKind.PROJECT) {
+ kind = ContextMenuKind.PROJECT;
+ } else if (resource.kind === ResourceKind.COLLECTION) {
+ kind = ContextMenuKind.COLLECTION_RESOURCE;
+ } else {
+ kind = ContextMenuKind.RESOURCE;
+ }
+ if (kind !== ContextMenuKind.RESOURCE) {
+ this.props.dispatch(
+ contextMenuActions.OPEN_CONTEXT_MENU({
+ position: { x: event.clientX, y: event.clientY },
+ resource: {
+ uuid: resource.uuid,
+ name: resource.name || '',
+ description: resource.description,
+ kind,
+ }
+ })
+ );
+ }