From dd2068ce397e3da1be153fa4a2ddcab569eea706 Mon Sep 17 00:00:00 2001 From: Wroud Date: Mon, 13 Jul 2020 17:55:52 +0300 Subject: [PATCH] fix(core): nav tree context menu for connections --- .../TreeNodeMenu/TreeNodeMenu.tsx | 1 - .../ConnectionDialogsService.ts | 18 ++++++++++-------- .../NodesManager/NavNodeManagerService.ts | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/webapp/packages/core-app/src/NavigationTree/NavigationTreeNode/TreeNodeMenu/TreeNodeMenu.tsx b/webapp/packages/core-app/src/NavigationTree/NavigationTreeNode/TreeNodeMenu/TreeNodeMenu.tsx index 0cbfb17c61..aece993ecd 100644 --- a/webapp/packages/core-app/src/NavigationTree/NavigationTreeNode/TreeNodeMenu/TreeNodeMenu.tsx +++ b/webapp/packages/core-app/src/NavigationTree/NavigationTreeNode/TreeNodeMenu/TreeNodeMenu.tsx @@ -28,7 +28,6 @@ export const TreeNodeMenu = observer(function TreeNodeMenu({ node, isSelected, }: TreeNodeMenuProps) { - const navigationTreeContextMenuService = useService(NavigationTreeContextMenuService); const menuPanel = useMemo( diff --git a/webapp/packages/core-app/src/shared/ConnectionsManager/ConnectionDialogsService.ts b/webapp/packages/core-app/src/shared/ConnectionsManager/ConnectionDialogsService.ts index 6a10a21e01..d1254e5e8c 100644 --- a/webapp/packages/core-app/src/shared/ConnectionsManager/ConnectionDialogsService.ts +++ b/webapp/packages/core-app/src/shared/ConnectionsManager/ConnectionDialogsService.ts @@ -55,13 +55,14 @@ export class ConnectionDialogsService { this.contextMenuService.getRootMenuToken(), { id: 'closeConnection', - isPresent: (context: IMenuContext) => { + isPresent: + (context: IMenuContext) => context.contextType === NavigationTreeContextMenuService.nodeContextType, + isHidden: (context: IMenuContext) => { const connectionId = NodeManagerUtils.connectionNodeIdToConnectionId(context.data.id); const connection = this.connectionInfoResource.get(connectionId); - return context.contextType === NavigationTreeContextMenuService.nodeContextType - && !!context.data.objectFeatures.includes(EObjectFeature.dataSource) - && !!connection?.connected; + return !context.data.objectFeatures.includes(EObjectFeature.dataSource) + || !connection?.connected; }, title: 'Disconnect', onClick: (context: IMenuContext) => { @@ -75,13 +76,14 @@ export class ConnectionDialogsService { this.contextMenuService.getRootMenuToken(), { id: 'deleteConnection', - isPresent: (context: IMenuContext) => { + isPresent: + (context: IMenuContext) => context.contextType === NavigationTreeContextMenuService.nodeContextType, + isHidden: (context: IMenuContext) => { const connectionId = NodeManagerUtils.connectionNodeIdToConnectionId(context.data.id); const connection = this.connectionInfoResource.get(connectionId); - return context.contextType === NavigationTreeContextMenuService.nodeContextType - && !!context.data.objectFeatures.includes(EObjectFeature.dataSource) - && !!connection?.features.includes(EConnectionFeature.temporary); + return !context.data.objectFeatures.includes(EObjectFeature.dataSource) + || !connection?.features.includes(EConnectionFeature.temporary); }, title: 'Delete', onClick: (context: IMenuContext) => { diff --git a/webapp/packages/core-app/src/shared/NodesManager/NavNodeManagerService.ts b/webapp/packages/core-app/src/shared/NodesManager/NavNodeManagerService.ts index c3497444ab..a043db6256 100644 --- a/webapp/packages/core-app/src/shared/NodesManager/NavNodeManagerService.ts +++ b/webapp/packages/core-app/src/shared/NodesManager/NavNodeManagerService.ts @@ -314,7 +314,7 @@ export class NavNodeManagerService { let connection: Connection | undefined; try { connection = await this.connectionAuthService.auth( - NodeManagerUtils.connectionNodeIdToConnectionId(nodeInfo.nodeId) + NodeManagerUtils.nodeIdToConnectionId(nodeInfo.nodeId) ); } catch (exception) { this.notificationService.logException(exception);