From 46e07a46931b276383181dc11f5dae89e0d84e9b Mon Sep 17 00:00:00 2001 From: Naumov Alexey Date: Tue, 21 Jun 2022 16:34:27 +0200 Subject: [PATCH] fix(core-app): CB-1675 show error message if can't find the node --- .../ElementsTree/useElementsTree.ts | 21 ++++++++++++------- webapp/packages/core-app/src/locales/en.ts | 1 + webapp/packages/core-app/src/locales/it.ts | 1 + webapp/packages/core-app/src/locales/ru.ts | 1 + webapp/packages/core-app/src/locales/zh.ts | 1 + 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/webapp/packages/core-app/src/NavigationTree/ElementsTree/useElementsTree.ts b/webapp/packages/core-app/src/NavigationTree/ElementsTree/useElementsTree.ts index 470e2c74a1..64f28085ee 100644 --- a/webapp/packages/core-app/src/NavigationTree/ElementsTree/useElementsTree.ts +++ b/webapp/packages/core-app/src/NavigationTree/ElementsTree/useElementsTree.ts @@ -12,6 +12,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import { IFolderExplorerContext, useExecutor, useObjectRef, useObservableRef, useUserData } from '@cloudbeaver/core-blocks'; import { ConnectionInfoResource } from '@cloudbeaver/core-connections'; import { useService } from '@cloudbeaver/core-di'; +import { NotificationService } from '@cloudbeaver/core-events'; import { ISyncExecutor, SyncExecutor } from '@cloudbeaver/core-executor'; import { CachedMapAllKey, ResourceKeyUtils } from '@cloudbeaver/core-sdk'; import { MetadataMap, throttle } from '@cloudbeaver/core-utils'; @@ -101,6 +102,7 @@ export interface IElementsTree { } export function useElementsTree(options: IOptions): IElementsTree { + const notificationService = useService(NotificationService); const navNodeInfoResource = useService(NavNodeInfoResource); const navTreeResource = useService(NavTreeResource); const connectionInfoResource = useService(ConnectionInfoResource); @@ -162,7 +164,7 @@ export function useElementsTree(options: IOptions): IElementsTree { } }, - getNestedChildren(nodeId: string): string [] { + getNestedChildren(nodeId: string): string[] { const nestedChildren: string[] = []; const prevChildren = elementsTree.getNodeChildren(nodeId); nestedChildren.push(...prevChildren); @@ -357,7 +359,14 @@ export function useElementsTree(options: IOptions): IElementsTree { } }, async show(nodeId: string, path: string[]): Promise { - const preloaded = await navTreeResource.preloadNodeParents(path); + const preloaded = await navTreeResource.preloadNodeParents(path, nodeId); + + if (!preloaded) { + notificationService.logError({ + title: 'app_navigationTree_node_not_found', + message: nodeId, + }); + } if (preloaded) { runInAction(() => { @@ -366,12 +375,10 @@ export function useElementsTree(options: IOptions): IElementsTree { state.expanded = true; } - const node = navNodeInfoResource.get(nodeId); + const node = navNodeInfoResource.get(nodeId)!; - if (node) { - this.select(node, false, false); - this.actions.execute({ type: 'show', nodeId }); - } + this.select(node, false, false); + this.actions.execute({ type: 'show', nodeId }); }); } diff --git a/webapp/packages/core-app/src/locales/en.ts b/webapp/packages/core-app/src/locales/en.ts index 9bd01089cb..bd5d096c19 100644 --- a/webapp/packages/core-app/src/locales/en.ts +++ b/webapp/packages/core-app/src/locales/en.ts @@ -24,6 +24,7 @@ export default [ ['app_navigationTree_settings_folders_title', 'Folders'], ['app_navigationTree_settings_folders_description', 'Open any node as tree root node'], ['app_navigationTree_node_empty', 'Empty'], + ['app_navigationTree_node_not_found', "Can't find the node"], ['app_navigationTree_connection_view', 'Connection view'], ['app_navigationTree_connection_view_option_simple', 'Simple'], ['app_navigationTree_connection_view_option_advanced', 'Advanced'], diff --git a/webapp/packages/core-app/src/locales/it.ts b/webapp/packages/core-app/src/locales/it.ts index 872ffb3b4e..35d5cf3506 100644 --- a/webapp/packages/core-app/src/locales/it.ts +++ b/webapp/packages/core-app/src/locales/it.ts @@ -24,6 +24,7 @@ export default [ ['app_navigationTree_settings_folders_title', 'Folders'], ['app_navigationTree_settings_folders_description', 'Open any node as tree root node'], ['app_navigationTree_node_empty', 'Empty'], + ['app_navigationTree_node_not_found', "Can't find the node"], ['app_navigationTree_connection_view', 'Vista di connessione'], ['app_navigationTree_connection_view_option_simple', 'Semplice'], ['app_navigationTree_connection_view_option_advanced', 'Avanzato'], diff --git a/webapp/packages/core-app/src/locales/ru.ts b/webapp/packages/core-app/src/locales/ru.ts index 233e48e6bd..f86ca350a1 100644 --- a/webapp/packages/core-app/src/locales/ru.ts +++ b/webapp/packages/core-app/src/locales/ru.ts @@ -30,6 +30,7 @@ export default [ ['app_navigationTree_settings_folders_description', 'Позволяет открыть любой узел как начальный'], ['app_navigationTree_node_empty', 'Пусто'], + ['app_navigationTree_node_not_found', 'Не удалось найти элемент'], ['app_navigationTree_connection_view', 'Отображение'], ['app_navigationTree_connection_view_option_simple', 'Упрощенное'], ['app_navigationTree_connection_view_option_advanced', 'Продвинутое'], diff --git a/webapp/packages/core-app/src/locales/zh.ts b/webapp/packages/core-app/src/locales/zh.ts index 83988cc8d3..013e640357 100644 --- a/webapp/packages/core-app/src/locales/zh.ts +++ b/webapp/packages/core-app/src/locales/zh.ts @@ -25,6 +25,7 @@ export default [ ['app_navigationTree_node_empty', 'Empty'], ['app_navigationTree_openNodeTab', '打开'], ['app_navigationTree_connection_view', '连接视图'], + ['app_navigationTree_node_not_found', "Can't find the node"], ['app_navigationTree_connection_view_option_simple', '简单'], ['app_navigationTree_connection_view_option_advanced', '完善'], ['app_navigationTree_connection_view_option_custom', '自定义'],