ydb-embedded-ui 18.5.0 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/components/Drawer/Drawer.js +17 -12
  2. package/dist/components/Drawer/Drawer.js.map +1 -1
  3. package/dist/components/Drawer/DrawerContext.d.ts +10 -1
  4. package/dist/components/Drawer/DrawerContext.js +59 -6
  5. package/dist/components/Drawer/DrawerContext.js.map +1 -1
  6. package/dist/components/Drawer/DrawerWidthUtils.d.ts +4 -0
  7. package/dist/components/Drawer/DrawerWidthUtils.js +4 -0
  8. package/dist/components/Drawer/DrawerWidthUtils.js.map +1 -1
  9. package/dist/components/EntityName/EntityName.d.ts +15 -0
  10. package/dist/components/EntityName/EntityName.js +39 -0
  11. package/dist/components/EntityName/EntityName.js.map +1 -0
  12. package/dist/components/EntityName/EntityName.scss +140 -0
  13. package/dist/components/EntityStatus/EntityStatus.d.ts +17 -14
  14. package/dist/components/EntityStatus/EntityStatus.js +41 -40
  15. package/dist/components/EntityStatus/EntityStatus.js.map +1 -1
  16. package/dist/components/EntityStatus/EntityStatus.scss +5 -132
  17. package/dist/components/EntityStatus/i18n/index.js.map +1 -0
  18. package/dist/components/EntityStatus/utils.js.map +1 -0
  19. package/dist/components/Fullscreen/Fullscreen.d.ts +2 -1
  20. package/dist/components/Fullscreen/Fullscreen.js +11 -2
  21. package/dist/components/Fullscreen/Fullscreen.js.map +1 -1
  22. package/dist/components/LinkToSchemaObject/LinkToSchemaObject.d.ts +2 -1
  23. package/dist/components/LinkToSchemaObject/LinkToSchemaObject.js +5 -2
  24. package/dist/components/LinkToSchemaObject/LinkToSchemaObject.js.map +1 -1
  25. package/dist/components/NodeHostWrapper/NodeHostWrapper.js +3 -2
  26. package/dist/components/NodeHostWrapper/NodeHostWrapper.js.map +1 -1
  27. package/dist/components/StatusColor/StatusColor.d.ts +10 -0
  28. package/dist/components/StatusColor/StatusColor.js +10 -0
  29. package/dist/components/StatusColor/StatusColor.js.map +1 -0
  30. package/dist/components/StatusColor/StatusColor.scss +49 -0
  31. package/dist/components/StatusIcon/StatusIcon.js +2 -1
  32. package/dist/components/StatusIcon/StatusIcon.js.map +1 -1
  33. package/dist/components/StatusIcon/StatusIcon.scss +0 -22
  34. package/dist/components/TabletNameWrapper/TabletNameWrapper.js +2 -2
  35. package/dist/components/TabletNameWrapper/TabletNameWrapper.js.map +1 -1
  36. package/dist/components/TenantNameWrapper/TenantNameWrapper.d.ts +2 -1
  37. package/dist/components/TenantNameWrapper/TenantNameWrapper.js +13 -5
  38. package/dist/components/TenantNameWrapper/TenantNameWrapper.js.map +1 -1
  39. package/dist/containers/Cluster/Cluster.js +2 -2
  40. package/dist/containers/Cluster/Cluster.js.map +1 -1
  41. package/dist/containers/Cluster/ClusterDrawerHealthcheck.d.ts +2 -1
  42. package/dist/containers/Cluster/ClusterDrawerHealthcheck.js +5 -5
  43. package/dist/containers/Cluster/ClusterDrawerHealthcheck.js.map +1 -1
  44. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js +1 -1
  45. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js.map +1 -1
  46. package/dist/containers/Clusters/columns.js +1 -1
  47. package/dist/containers/Clusters/columns.js.map +1 -1
  48. package/dist/containers/Node/NodeStructure/NodeStructure.scss +1 -1
  49. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +2 -2
  50. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
  51. package/dist/containers/Storage/Storage.scss +1 -1
  52. package/dist/containers/Tablet/Tablet.js +12 -5
  53. package/dist/containers/Tablet/Tablet.js.map +1 -1
  54. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.d.ts +3 -1
  55. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js +31 -19
  56. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js.map +1 -1
  57. package/dist/containers/Tablet/components/TabletInfo/i18n/en.json +2 -0
  58. package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -1
  59. package/dist/containers/Tablet/components/TabletTable/TabletTable.js +2 -2
  60. package/dist/containers/Tablet/components/TabletTable/TabletTable.js.map +1 -1
  61. package/dist/containers/Tablet/utils.d.ts +3 -0
  62. package/dist/containers/Tablet/utils.js +12 -0
  63. package/dist/containers/Tablet/utils.js.map +1 -1
  64. package/dist/containers/Tablets/TabletsTable.js +2 -2
  65. package/dist/containers/Tablets/TabletsTable.js.map +1 -1
  66. package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RevokeAllRightsDialog.js +6 -11
  67. package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RevokeAllRightsDialog.js.map +1 -1
  68. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +13 -2
  69. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
  70. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo/prepareRowTableInfo.js +9 -5
  71. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo/prepareRowTableInfo.js.map +1 -1
  72. package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js +6 -6
  73. package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js.map +1 -1
  74. package/dist/containers/Tenant/Diagnostics/StorageUsage/StorageUsageTable.js +2 -2
  75. package/dist/containers/Tenant/Diagnostics/StorageUsage/StorageUsageTable.js.map +1 -1
  76. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js +1 -1
  77. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js.map +1 -1
  78. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js +1 -1
  79. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js.map +1 -1
  80. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.scss +4 -0
  81. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +8 -7
  82. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  83. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +1 -0
  84. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
  85. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +6 -6
  86. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -1
  87. package/dist/containers/Tenant/GrantAccess/GrantAccess.js +14 -16
  88. package/dist/containers/Tenant/GrantAccess/GrantAccess.js.map +1 -1
  89. package/dist/containers/Tenant/Healthcheck/Healthcheck.d.ts +7 -2
  90. package/dist/containers/Tenant/Healthcheck/Healthcheck.js +34 -13
  91. package/dist/containers/Tenant/Healthcheck/Healthcheck.js.map +1 -1
  92. package/dist/containers/Tenant/Healthcheck/Healthcheck.scss +28 -0
  93. package/dist/containers/Tenant/Healthcheck/HealthcheckContext.d.ts +9 -0
  94. package/dist/containers/Tenant/Healthcheck/HealthcheckContext.js.map +1 -1
  95. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js +24 -2
  96. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js.map +1 -1
  97. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/ComputeLocation.js +2 -2
  98. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/ComputeLocation.js.map +1 -1
  99. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/HealthcheckIssueDetails.js +2 -2
  100. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/HealthcheckIssueDetails.js.map +1 -1
  101. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/NodeInfo.js +3 -2
  102. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/NodeInfo.js.map +1 -1
  103. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/StorageLocation.js +7 -4
  104. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/StorageLocation.js.map +1 -1
  105. package/dist/containers/Tenant/Healthcheck/i18n/en.json +4 -0
  106. package/dist/containers/Tenant/Healthcheck/i18n/index.d.ts +1 -1
  107. package/dist/containers/Tenant/Healthcheck/types.d.ts +31 -0
  108. package/dist/containers/Tenant/Healthcheck/types.js +2 -0
  109. package/dist/containers/Tenant/Healthcheck/types.js.map +1 -0
  110. package/dist/containers/Tenant/Healthcheck/useHealthcheck.d.ts +7 -1
  111. package/dist/containers/Tenant/Healthcheck/useHealthcheck.js +14 -5
  112. package/dist/containers/Tenant/Healthcheck/useHealthcheck.js.map +1 -1
  113. package/dist/containers/Tenant/Healthcheck/utils.d.ts +21 -0
  114. package/dist/containers/Tenant/Healthcheck/utils.js +16 -0
  115. package/dist/containers/Tenant/Healthcheck/utils.js.map +1 -1
  116. package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js +1 -5
  117. package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js.map +1 -1
  118. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +3 -3
  119. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
  120. package/dist/containers/Tenant/Query/QueryEditor/utils/queryExecutionManager.d.ts +2 -1
  121. package/dist/containers/Tenant/Query/QueryEditor/utils/queryExecutionManager.js +13 -9
  122. package/dist/containers/Tenant/Query/QueryEditor/utils/queryExecutionManager.js.map +1 -1
  123. package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.js +1 -5
  124. package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.js.map +1 -1
  125. package/dist/containers/Tenant/Query/hooks/useExternalQuerySingleTabProtection.d.ts +13 -0
  126. package/dist/containers/Tenant/Query/hooks/useExternalQuerySingleTabProtection.js +246 -0
  127. package/dist/containers/Tenant/Query/hooks/useExternalQuerySingleTabProtection.js.map +1 -0
  128. package/dist/containers/Tenant/Query/hooks/useOpenExternalQueryInEditor.d.ts +1 -1
  129. package/dist/containers/Tenant/Query/hooks/useOpenExternalQueryInEditor.js +57 -3
  130. package/dist/containers/Tenant/Query/hooks/useOpenExternalQueryInEditor.js.map +1 -1
  131. package/dist/containers/Tenant/TenantDrawerHealthcheck.d.ts +3 -2
  132. package/dist/containers/Tenant/TenantDrawerHealthcheck.js +5 -5
  133. package/dist/containers/Tenant/TenantDrawerHealthcheck.js.map +1 -1
  134. package/dist/containers/Tenant/TenantDrawerWrappers.js +3 -1
  135. package/dist/containers/Tenant/TenantDrawerWrappers.js.map +1 -1
  136. package/dist/containers/Tenant/utils/diagnosticsNavigation.d.ts +2 -2
  137. package/dist/containers/Tenant/utils/diagnosticsNavigation.js +13 -1
  138. package/dist/containers/Tenant/utils/diagnosticsNavigation.js.map +1 -1
  139. package/dist/containers/Tenants/DatabaseDrawerHealthcheck.d.ts +9 -0
  140. package/dist/containers/Tenants/DatabaseDrawerHealthcheck.js +39 -0
  141. package/dist/containers/Tenants/DatabaseDrawerHealthcheck.js.map +1 -0
  142. package/dist/containers/Tenants/TenantsTable.d.ts +1 -1
  143. package/dist/containers/Tenants/TenantsTable.js +8 -2
  144. package/dist/containers/Tenants/TenantsTable.js.map +1 -1
  145. package/dist/containers/Versions/NodesTreeTitle/NodesTreeTitle.js +10 -1
  146. package/dist/containers/Versions/NodesTreeTitle/NodesTreeTitle.js.map +1 -1
  147. package/dist/lib.d.ts +7 -1
  148. package/dist/lib.js +3 -0
  149. package/dist/lib.js.map +1 -1
  150. package/dist/routes.d.ts +2 -2
  151. package/dist/routes.js +6 -4
  152. package/dist/routes.js.map +1 -1
  153. package/dist/services/api/base.d.ts +1 -1
  154. package/dist/services/api/base.js +10 -4
  155. package/dist/services/api/base.js.map +1 -1
  156. package/dist/services/api/viewer.d.ts +7 -2
  157. package/dist/services/api/viewer.js +9 -2
  158. package/dist/services/api/viewer.js.map +1 -1
  159. package/dist/store/getUrlData.js +6 -3
  160. package/dist/store/getUrlData.js.map +1 -1
  161. package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
  162. package/dist/store/reducers/capabilities/hooks.js +4 -0
  163. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  164. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +77 -254
  165. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.js +6 -6
  166. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.js.map +1 -1
  167. package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +78 -12
  168. package/dist/store/reducers/schemaAcl/schemaAcl.js +13 -7
  169. package/dist/store/reducers/schemaAcl/schemaAcl.js.map +1 -1
  170. package/dist/store/reducers/schemaAcl/utils.d.ts +12 -0
  171. package/dist/store/reducers/schemaAcl/utils.js +86 -0
  172. package/dist/store/reducers/schemaAcl/utils.js.map +1 -0
  173. package/dist/store/reducers/tablet/utils.d.ts +2 -0
  174. package/dist/store/reducers/tablet/utils.js +11 -0
  175. package/dist/store/reducers/tablet/utils.js.map +1 -0
  176. package/dist/store/reducers/tablet.d.ts +5 -0
  177. package/dist/store/reducers/tablet.js +22 -0
  178. package/dist/store/reducers/tablet.js.map +1 -1
  179. package/dist/store/reducers/tenant/tenant.d.ts +3 -1
  180. package/dist/store/reducers/tenant/tenant.js +9 -5
  181. package/dist/store/reducers/tenant/tenant.js.map +1 -1
  182. package/dist/types/api/tablet.d.ts +13 -0
  183. package/dist/types/api/tablet.js.map +1 -1
  184. package/dist/uiFactory/types.d.ts +3 -0
  185. package/package.json +1 -1
  186. package/dist/components/EntityStatusNew/EntityStatus.d.ts +0 -24
  187. package/dist/components/EntityStatusNew/EntityStatus.js +0 -48
  188. package/dist/components/EntityStatusNew/EntityStatus.js.map +0 -1
  189. package/dist/components/EntityStatusNew/EntityStatus.scss +0 -11
  190. package/dist/components/EntityStatusNew/i18n/index.js.map +0 -1
  191. package/dist/components/EntityStatusNew/utils.js.map +0 -1
  192. /package/dist/components/{EntityStatusNew → EntityStatus}/i18n/en.json +0 -0
  193. /package/dist/components/{EntityStatusNew → EntityStatus}/i18n/index.d.ts +0 -0
  194. /package/dist/components/{EntityStatusNew → EntityStatus}/i18n/index.js +0 -0
  195. /package/dist/components/{EntityStatusNew → EntityStatus}/utils.d.ts +0 -0
  196. /package/dist/components/{EntityStatusNew → EntityStatus}/utils.js +0 -0
@@ -0,0 +1,246 @@
1
+ import React from 'react';
2
+ import { parseQuery } from '../../../../routes';
3
+ import { cancelQueryApi } from '../../../../store/reducers/cancelQuery';
4
+ import { selectActiveTabId, selectIsDirty, selectResult, selectUserInput, } from '../../../../store/reducers/query/query';
5
+ import { TENANT_PAGE } from '../../../../store/reducers/tenant/constants';
6
+ import { tenantPageSchema } from '../../../../store/reducers/tenant/types';
7
+ import createToast from '../../../../utils/createToast';
8
+ import { useTypedSelector } from '../../../../utils/hooks';
9
+ import { getRunningQueryConfirmation } from '../../../../utils/hooks/withConfirmation/RunningQueryDialog';
10
+ import { changeInputWithConfirmation } from '../../../../utils/hooks/withConfirmation/useChangeInputWithConfirmation';
11
+ import { queryExecutionManagerInstance } from '../QueryEditor/utils/queryExecutionManager';
12
+ import i18n from '../i18n';
13
+ const STOP_QUERY_ERROR_AUTO_HIDE_TIMEOUT = 5000;
14
+ const externalQueryRequestCoordinators = new WeakMap();
15
+ function getExternalQueryRequestCoordinator(history) {
16
+ let coordinator = externalQueryRequestCoordinators.get(history);
17
+ if (!coordinator) {
18
+ coordinator = { requestEpoch: 0 };
19
+ externalQueryRequestCoordinators.set(history, coordinator);
20
+ }
21
+ return coordinator;
22
+ }
23
+ export function getDatabaseFromQueryParams(queryParams) {
24
+ const databaseParam = queryParams.database || queryParams.name;
25
+ return typeof databaseParam === 'string' && databaseParam.trim() ? databaseParam : undefined;
26
+ }
27
+ function isSameExecution(currentExecution, expectedExecution) {
28
+ return ((currentExecution === null || currentExecution === void 0 ? void 0 : currentExecution.activeTabId) === expectedExecution.activeTabId &&
29
+ currentExecution.startTime === expectedExecution.startTime);
30
+ }
31
+ function isEquivalentQueryNormalization(previousLocation, nextLocation) {
32
+ if (previousLocation.pathname !== nextLocation.pathname ||
33
+ previousLocation.hash !== nextLocation.hash) {
34
+ return false;
35
+ }
36
+ const previousParams = new URLSearchParams(previousLocation.search);
37
+ const nextParams = new URLSearchParams(nextLocation.search);
38
+ const legacyDatabase = previousParams.get('name');
39
+ let normalizesDatabase = false;
40
+ if (legacyDatabase && !previousParams.has('database')) {
41
+ normalizesDatabase = true;
42
+ previousParams.delete('name');
43
+ previousParams.set('database', legacyDatabase);
44
+ }
45
+ const legacyTenantPage = previousParams.get('tenantPage');
46
+ const normalizesTenantPage = legacyTenantPage !== null;
47
+ if (normalizesTenantPage) {
48
+ previousParams.delete('tenantPage');
49
+ if (!previousParams.has('databasePage')) {
50
+ previousParams.set('databasePage', legacyTenantPage);
51
+ }
52
+ }
53
+ const previousTenantPage = tenantPageSchema.safeParse(previousParams.get(TENANT_PAGE));
54
+ const nextTenantPage = tenantPageSchema.safeParse(nextParams.get(TENANT_PAGE));
55
+ const normalizesFallbackTenantPage = !previousTenantPage.success && nextTenantPage.success;
56
+ if (normalizesFallbackTenantPage) {
57
+ previousParams.set(TENANT_PAGE, nextTenantPage.data);
58
+ }
59
+ if (!normalizesDatabase && !normalizesTenantPage && !normalizesFallbackTenantPage) {
60
+ return false;
61
+ }
62
+ previousParams.sort();
63
+ nextParams.sort();
64
+ return previousParams.toString() === nextParams.toString();
65
+ }
66
+ export function useExternalQueryRequestRegistration(history) {
67
+ const requestCoordinator = React.useMemo(() => getExternalQueryRequestCoordinator(history), [history]);
68
+ const latestLocation = React.useRef(history.location);
69
+ React.useEffect(() => {
70
+ return history.listen((nextLocation, action) => {
71
+ const previousLocation = latestLocation.current;
72
+ latestLocation.current = nextLocation;
73
+ if (action !== 'REPLACE' ||
74
+ !isEquivalentQueryNormalization(previousLocation, nextLocation)) {
75
+ requestCoordinator.requestEpoch += 1;
76
+ }
77
+ });
78
+ }, [history, requestCoordinator]);
79
+ return React.useCallback(() => {
80
+ requestCoordinator.requestEpoch += 1;
81
+ }, [requestCoordinator]);
82
+ }
83
+ export function useExternalQuerySingleTabProtection({ database, history, isMultiTabEnabled, openExternalQueryInEditor, }) {
84
+ const [sendCancelQuery] = cancelQueryApi.useCancelQueryMutation();
85
+ const activeTabId = useTypedSelector(selectActiveTabId);
86
+ const currentInput = useTypedSelector(selectUserInput);
87
+ const isCurrentTabDirty = useTypedSelector(selectIsDirty);
88
+ const result = useTypedSelector(selectResult);
89
+ const requestCoordinator = React.useMemo(() => getExternalQueryRequestCoordinator(history), [history]);
90
+ const latestOptions = React.useRef({ isMultiTabEnabled, openExternalQueryInEditor });
91
+ latestOptions.current = { isMultiTabEnabled, openExternalQueryInEditor };
92
+ const latestEditorState = React.useRef({
93
+ activeTabId,
94
+ input: currentInput,
95
+ isDirty: isCurrentTabDirty,
96
+ result,
97
+ });
98
+ latestEditorState.current = {
99
+ activeTabId,
100
+ input: currentInput,
101
+ isDirty: isCurrentTabDirty,
102
+ result,
103
+ };
104
+ const getCurrentExecutionIdentity = React.useCallback(() => {
105
+ var _a;
106
+ const currentEditorState = latestEditorState.current;
107
+ if (!currentEditorState.activeTabId || ((_a = currentEditorState.result) === null || _a === void 0 ? void 0 : _a.startTime) === undefined) {
108
+ return undefined;
109
+ }
110
+ return {
111
+ activeTabId: currentEditorState.activeTabId,
112
+ startTime: currentEditorState.result.startTime,
113
+ };
114
+ }, []);
115
+ const getCurrentRunningExecutionIdentity = React.useCallback(() => {
116
+ var _a;
117
+ return ((_a = latestEditorState.current.result) === null || _a === void 0 ? void 0 : _a.isLoading)
118
+ ? getCurrentExecutionIdentity()
119
+ : undefined;
120
+ }, [getCurrentExecutionIdentity]);
121
+ const isDestinationCurrent = React.useCallback((destination) => {
122
+ const currentQueryParams = parseQuery(history.location);
123
+ return (getDatabaseFromQueryParams(currentQueryParams) === destination.database &&
124
+ requestCoordinator.requestEpoch === destination.requestEpoch);
125
+ }, [history, requestCoordinator]);
126
+ const isRequestContextCurrent = React.useCallback(({ destination, confirmedExecution }) => {
127
+ if (!isDestinationCurrent(destination)) {
128
+ return false;
129
+ }
130
+ if (!confirmedExecution) {
131
+ return true;
132
+ }
133
+ return isSameExecution(getCurrentExecutionIdentity(), confirmedExecution);
134
+ }, [getCurrentExecutionIdentity, isDestinationCurrent]);
135
+ const latestOpenExternalQueryInEditorWithConfirmation = React.useRef(() => undefined);
136
+ const stopRunningQueryAndOpen = React.useCallback(async (request) => {
137
+ const { query } = request;
138
+ if (!isRequestContextCurrent(request)) {
139
+ return;
140
+ }
141
+ const runningExecution = latestOptions.current.isMultiTabEnabled
142
+ ? undefined
143
+ : getCurrentRunningExecutionIdentity();
144
+ if (runningExecution && !request.confirmedExecution) {
145
+ const confirmed = await getRunningQueryConfirmation();
146
+ const confirmedRequest = {
147
+ ...request,
148
+ confirmedExecution: runningExecution,
149
+ };
150
+ if (!confirmed || !isRequestContextCurrent(confirmedRequest)) {
151
+ return;
152
+ }
153
+ latestOpenExternalQueryInEditorWithConfirmation.current(confirmedRequest);
154
+ return;
155
+ }
156
+ if (runningExecution) {
157
+ const editorStateBeforeStop = latestEditorState.current;
158
+ const runningResult = editorStateBeforeStop.result;
159
+ if (runningResult === null || runningResult === void 0 ? void 0 : runningResult.streamingStatus) {
160
+ queryExecutionManagerInstance.abortQuery(runningExecution.activeTabId);
161
+ }
162
+ else {
163
+ const executionDatabase = queryExecutionManagerInstance.getQueryDatabase(runningExecution.activeTabId);
164
+ if (!executionDatabase || !(runningResult === null || runningResult === void 0 ? void 0 : runningResult.queryId)) {
165
+ return;
166
+ }
167
+ try {
168
+ await sendCancelQuery({
169
+ queryId: runningResult.queryId,
170
+ database: executionDatabase,
171
+ }).unwrap();
172
+ }
173
+ catch (_a) {
174
+ const currentRunningExecution = getCurrentRunningExecutionIdentity();
175
+ if (isSameExecution(currentRunningExecution, runningExecution)) {
176
+ createToast({
177
+ name: 'stop-error',
178
+ title: '',
179
+ content: i18n('toaster.stop-error'),
180
+ theme: 'danger',
181
+ autoHiding: STOP_QUERY_ERROR_AUTO_HIDE_TIMEOUT,
182
+ });
183
+ return;
184
+ }
185
+ }
186
+ const currentEditorState = latestEditorState.current;
187
+ if (!isSameExecution(getCurrentExecutionIdentity(), runningExecution)) {
188
+ return;
189
+ }
190
+ queryExecutionManagerInstance.abortQuery(runningExecution.activeTabId);
191
+ if (currentEditorState.input !== editorStateBeforeStop.input ||
192
+ currentEditorState.isDirty !== editorStateBeforeStop.isDirty) {
193
+ return;
194
+ }
195
+ }
196
+ }
197
+ if (!isRequestContextCurrent(request)) {
198
+ return;
199
+ }
200
+ latestOptions.current.openExternalQueryInEditor(query);
201
+ }, [
202
+ getCurrentExecutionIdentity,
203
+ getCurrentRunningExecutionIdentity,
204
+ isRequestContextCurrent,
205
+ sendCancelQuery,
206
+ ]);
207
+ const latestStopRunningQueryAndOpen = React.useRef(stopRunningQueryAndOpen);
208
+ latestStopRunningQueryAndOpen.current = stopRunningQueryAndOpen;
209
+ const stopLatestRunningQueryAndOpen = React.useCallback((request) => {
210
+ latestStopRunningQueryAndOpen.current(request);
211
+ }, []);
212
+ const stopLatestRunningQueryAndOpenWithConfirmation = React.useMemo(() => changeInputWithConfirmation(stopLatestRunningQueryAndOpen), [stopLatestRunningQueryAndOpen]);
213
+ latestOpenExternalQueryInEditorWithConfirmation.current =
214
+ isMultiTabEnabled || !isCurrentTabDirty
215
+ ? stopLatestRunningQueryAndOpen
216
+ : stopLatestRunningQueryAndOpenWithConfirmation;
217
+ return React.useCallback((query) => {
218
+ var _a;
219
+ const currentIsQueryRunning = Boolean((_a = latestEditorState.current.result) === null || _a === void 0 ? void 0 : _a.isLoading);
220
+ const currentIsMultiTabEnabled = latestOptions.current.isMultiTabEnabled;
221
+ const confirmedExecution = !currentIsMultiTabEnabled && currentIsQueryRunning
222
+ ? getCurrentRunningExecutionIdentity()
223
+ : undefined;
224
+ if (!currentIsMultiTabEnabled && currentIsQueryRunning && !confirmedExecution) {
225
+ return;
226
+ }
227
+ const request = {
228
+ query,
229
+ destination: {
230
+ database,
231
+ requestEpoch: requestCoordinator.requestEpoch,
232
+ },
233
+ confirmedExecution,
234
+ };
235
+ if (!currentIsMultiTabEnabled && currentIsQueryRunning) {
236
+ getRunningQueryConfirmation().then((confirmed) => {
237
+ if (confirmed) {
238
+ latestOpenExternalQueryInEditorWithConfirmation.current(request);
239
+ }
240
+ });
241
+ return;
242
+ }
243
+ latestOpenExternalQueryInEditorWithConfirmation.current(request);
244
+ }, [database, getCurrentRunningExecutionIdentity, requestCoordinator]);
245
+ }
246
+ //# sourceMappingURL=useExternalQuerySingleTabProtection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useExternalQuerySingleTabProtection.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/hooks/useExternalQuerySingleTabProtection.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,4 @@ export interface ExternalQueryToOpen {
4
4
  savedQueryName?: string;
5
5
  onAfterOpen?: () => void;
6
6
  }
7
- export declare function useOpenExternalQueryInEditor(): ({ title, input, savedQueryName, onAfterOpen }: ExternalQueryToOpen) => void;
7
+ export declare function useOpenExternalQueryInEditor(): (query: ExternalQueryToOpen) => void;
@@ -1,14 +1,31 @@
1
1
  import React from 'react';
2
+ import { useHistory, useLocation, useRouteMatch } from 'react-router-dom';
2
3
  import { v4 as uuidv4 } from 'uuid';
4
+ import routes, { createHref, getLocationObjectFromHref, parseQuery } from '../../../../routes';
5
+ import { environment as configuredEnvironment } from '../../../../store';
3
6
  import { useMultiTabQueryEditorEnabled } from '../../../../store/reducers/capabilities/hooks';
4
7
  import { applyExternalQueryToActiveTab, setIsDirty, setQueryTabContent, } from '../../../../store/reducers/query/query';
5
- import { TENANT_QUERY_TABS_ID } from '../../../../store/reducers/tenant/constants';
8
+ import { TENANT_PAGE, TENANT_PAGES_IDS, TENANT_QUERY_TABS_ID, } from '../../../../store/reducers/tenant/constants';
6
9
  import { setQueryTab } from '../../../../store/reducers/tenant/tenant';
7
10
  import { useTypedDispatch } from '../../../../utils/hooks';
11
+ import { TenantTabsGroups } from '../../TenantPages';
12
+ import { getDatabaseFromQueryParams, useExternalQueryRequestRegistration, useExternalQuerySingleTabProtection, } from './useExternalQuerySingleTabProtection';
13
+ const ROUTE_PATHS = Object.values(routes);
8
14
  export function useOpenExternalQueryInEditor() {
15
+ var _a;
9
16
  const dispatch = useTypedDispatch();
17
+ const history = useHistory();
18
+ const location = useLocation();
19
+ const currentRouteMatch = useRouteMatch({
20
+ path: ROUTE_PATHS,
21
+ exact: true,
22
+ });
23
+ const routeEnvironment = (_a = currentRouteMatch === null || currentRouteMatch === void 0 ? void 0 : currentRouteMatch.params.environment) !== null && _a !== void 0 ? _a : configuredEnvironment;
10
24
  const isMultiTabEnabled = useMultiTabQueryEditorEnabled();
11
- return React.useCallback(({ title, input, savedQueryName, onAfterOpen }) => {
25
+ const queryParams = React.useMemo(() => parseQuery(location), [location]);
26
+ const database = getDatabaseFromQueryParams(queryParams);
27
+ const registerExternalQueryRequest = useExternalQueryRequestRegistration(history);
28
+ const openExternalQueryInEditor = React.useCallback(({ title, input, savedQueryName, onAfterOpen }) => {
12
29
  if (isMultiTabEnabled) {
13
30
  dispatch(setQueryTabContent({
14
31
  tabId: uuidv4(),
@@ -26,7 +43,44 @@ export function useOpenExternalQueryInEditor() {
26
43
  }
27
44
  dispatch(setIsDirty(false));
28
45
  dispatch(setQueryTab(TENANT_QUERY_TABS_ID.newQuery));
46
+ const queryPath = createHref(routes.tenant, { environment: routeEnvironment }, {
47
+ ...queryParams,
48
+ database,
49
+ name: undefined,
50
+ [TENANT_PAGE]: TENANT_PAGES_IDS.query,
51
+ [TenantTabsGroups.queryTab]: TENANT_QUERY_TABS_ID.newQuery,
52
+ });
53
+ const queryPathname = getLocationObjectFromHref(queryPath).pathname;
54
+ const isQueryEditorLocation = history.location.pathname === queryPathname &&
55
+ queryParams[TENANT_PAGE] === TENANT_PAGES_IDS.query;
56
+ if (!isQueryEditorLocation) {
57
+ history.push(queryPath);
58
+ }
29
59
  onAfterOpen === null || onAfterOpen === void 0 ? void 0 : onAfterOpen();
30
- }, [dispatch, isMultiTabEnabled]);
60
+ }, [database, dispatch, history, isMultiTabEnabled, queryParams, routeEnvironment]);
61
+ const openExternalQueryWithSingleTabProtection = useExternalQuerySingleTabProtection({
62
+ database: database !== null && database !== void 0 ? database : '',
63
+ history,
64
+ isMultiTabEnabled,
65
+ openExternalQueryInEditor,
66
+ });
67
+ return React.useCallback((query) => {
68
+ if (!database) {
69
+ return;
70
+ }
71
+ registerExternalQueryRequest();
72
+ if (isMultiTabEnabled) {
73
+ openExternalQueryInEditor(query);
74
+ }
75
+ else {
76
+ openExternalQueryWithSingleTabProtection(query);
77
+ }
78
+ }, [
79
+ database,
80
+ isMultiTabEnabled,
81
+ openExternalQueryInEditor,
82
+ openExternalQueryWithSingleTabProtection,
83
+ registerExternalQueryRequest,
84
+ ]);
31
85
  }
32
86
  //# sourceMappingURL=useOpenExternalQueryInEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOpenExternalQueryInEditor.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/hooks/useOpenExternalQueryInEditor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,EAAE,IAAI,MAAM,EAAC,MAAM,MAAM,CAAC;AAElC,OAAO,EAAC,6BAA6B,EAAC,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EACH,6BAA6B,EAC7B,UAAU,EACV,kBAAkB,GACrB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAC,oBAAoB,EAAC,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAC,WAAW,EAAC,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AASzD,MAAM,UAAU,4BAA4B;IACxC,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,iBAAiB,GAAG,6BAA6B,EAAE,CAAC;IAE1D,OAAO,KAAK,CAAC,WAAW,CACpB,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAsB,EAAE,EAAE;QACjE,IAAI,iBAAiB,EAAE,CAAC;YACpB,QAAQ,CACJ,kBAAkB,CAAC;gBACf,KAAK,EAAE,MAAM,EAAE;gBACf,KAAK;gBACL,KAAK;gBACL,cAAc;aACjB,CAAC,CACL,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,QAAQ,CACJ,6BAA6B,CAAC;gBAC1B,KAAK;gBACL,KAAK;gBACL,cAAc;aACjB,CAAC,CACL,CAAC;QACN,CAAC;QAED,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5B,QAAQ,CAAC,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrD,WAAW,aAAX,WAAW,uBAAX,WAAW,EAAI,CAAC;IACpB,CAAC,EACD,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAChC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"useOpenExternalQueryInEditor.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/hooks/useOpenExternalQueryInEditor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
- interface TenantDrawerWrapperProps {
2
+ interface TenantDrawerHealthcheckProps {
3
3
  children: React.ReactNode;
4
+ clusterName?: string;
4
5
  }
5
- export declare function TenantDrawerHealthcheck({ children }: TenantDrawerWrapperProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function TenantDrawerHealthcheck({ children, clusterName }: TenantDrawerHealthcheckProps): import("react/jsx-runtime").JSX.Element;
6
7
  export {};
@@ -7,19 +7,19 @@ import { HealthcheckDrawer } from './Healthcheck/components/HealthcheckDrawer';
7
7
  import { useCurrentSchema } from './TenantContext';
8
8
  import i18n from './i18n';
9
9
  import { useTenantQueryParams } from './useTenantQueryParams';
10
- export function TenantDrawerHealthcheck({ children }) {
10
+ export function TenantDrawerHealthcheck({ children, clusterName }) {
11
11
  const { database } = useCurrentSchema();
12
12
  const { handleShowHealthcheckChange, showHealthcheck, handleIssuesFilterChange, handleHealthcheckViewChange, } = useTenantQueryParams();
13
- const healthcheckStatus = useTypedSelector((state) => selectCheckStatus(state, database || ''));
14
- const healthcheckData = useTypedSelector((state) => selectAllHealthcheckInfo(state, database || ''));
13
+ const healthcheckStatus = useTypedSelector((state) => selectCheckStatus(state, database || '', clusterName));
14
+ const healthcheckData = useTypedSelector((state) => selectAllHealthcheckInfo(state, database || '', clusterName));
15
15
  const handleCloseDrawer = React.useCallback(() => {
16
16
  handleShowHealthcheckChange(false);
17
17
  handleIssuesFilterChange(undefined);
18
18
  handleHealthcheckViewChange(undefined);
19
19
  }, [handleShowHealthcheckChange, handleIssuesFilterChange, handleHealthcheckViewChange]);
20
20
  const renderDrawerContent = React.useCallback(() => {
21
- return _jsx(Healthcheck, { database: database });
22
- }, [database]);
21
+ return _jsx(Healthcheck, { database: database, clusterName: clusterName });
22
+ }, [database, clusterName]);
23
23
  return (_jsx(HealthcheckDrawer, { isDrawerVisible: Boolean(showHealthcheck), onCloseDrawer: handleCloseDrawer, renderDrawerContent: renderDrawerContent, drawerId: "tenant-healthcheck-details", storageKey: "tenant-healthcheck-details-drawer-width", title: i18n('title_healthcheck-dashboard'), status: healthcheckStatus, healthcheckData: healthcheckData, downloadFilePrefix: `${database}-healthcheck`, downloadTooltip: i18n('action_download-healthcheck'), children: children }));
24
24
  }
25
25
  //# sourceMappingURL=TenantDrawerHealthcheck.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TenantDrawerHealthcheck.js","sourceRoot":"","sources":["../../../src/containers/Tenant/TenantDrawerHealthcheck.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,wBAAwB,EACxB,iBAAiB,GACpB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAM5D,MAAM,UAAU,uBAAuB,CAAC,EAAC,QAAQ,EAA2B;IACxE,MAAM,EAAC,QAAQ,EAAC,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,EACF,2BAA2B,EAC3B,eAAe,EACf,wBAAwB,EACxB,2BAA2B,GAC9B,GAAG,oBAAoB,EAAE,CAAC;IAE3B,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhG,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,wBAAwB,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC,CAClD,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACnC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QACpC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,2BAA2B,EAAE,wBAAwB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAEzF,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/C,OAAO,KAAC,WAAW,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC;IAC/C,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACH,KAAC,iBAAiB,IACd,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,EACzC,aAAa,EAAE,iBAAiB,EAChC,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,EAAC,4BAA4B,EACrC,UAAU,EAAC,yCAAyC,EACpD,KAAK,EAAE,IAAI,CAAC,6BAA6B,CAAC,EAC1C,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,GAAG,QAAQ,cAAc,EAC7C,eAAe,EAAE,IAAI,CAAC,6BAA6B,CAAC,YAEnD,QAAQ,GACO,CACvB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"TenantDrawerHealthcheck.js","sourceRoot":"","sources":["../../../src/containers/Tenant/TenantDrawerHealthcheck.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,wBAAwB,EACxB,iBAAiB,GACpB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAO5D,MAAM,UAAU,uBAAuB,CAAC,EAAC,QAAQ,EAAE,WAAW,EAA+B;IACzF,MAAM,EAAC,QAAQ,EAAC,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,EACF,2BAA2B,EAC3B,eAAe,EACf,wBAAwB,EACxB,2BAA2B,GAC9B,GAAG,oBAAoB,EAAE,CAAC;IAE3B,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,iBAAiB,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,WAAW,CAAC,CACxD,CAAC;IAEF,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,wBAAwB,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,WAAW,CAAC,CAC/D,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACnC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QACpC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,2BAA2B,EAAE,wBAAwB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAEzF,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/C,OAAO,KAAC,WAAW,IAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAI,CAAC;IACzE,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5B,OAAO,CACH,KAAC,iBAAiB,IACd,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,EACzC,aAAa,EAAE,iBAAiB,EAChC,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,EAAC,4BAA4B,EACrC,UAAU,EAAC,yCAAyC,EACpD,KAAK,EAAE,IAAI,CAAC,6BAA6B,CAAC,EAC1C,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,GAAG,QAAQ,cAAc,EAC7C,eAAe,EAAE,IAAI,CAAC,6BAA6B,CAAC,YAEnD,QAAQ,GACO,CACvB,CAAC;AACN,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { DrawerContextProvider } from '../../components/Drawer/DrawerContext';
3
+ import { useClusterNameFromQuery } from '../../utils/hooks/useDatabaseFromQuery';
3
4
  import { TenantDrawerHealthcheck } from './TenantDrawerHealthcheck';
4
5
  import { TenantDrawerRights } from './TenantDrawerRights';
5
6
  export function TenantDrawerWrapper({ children }) {
6
- return (_jsx(DrawerContextProvider, { children: _jsx(TenantDrawerHealthcheck, { children: _jsx(TenantDrawerRights, { children: children }) }) }));
7
+ const clusterName = useClusterNameFromQuery();
8
+ return (_jsx(DrawerContextProvider, { children: _jsx(TenantDrawerHealthcheck, { clusterName: clusterName, children: _jsx(TenantDrawerRights, { children: children }) }) }));
7
9
  }
8
10
  //# sourceMappingURL=TenantDrawerWrappers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TenantDrawerWrappers.js","sourceRoot":"","sources":["../../../src/containers/Tenant/TenantDrawerWrappers.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,qBAAqB,EAAC,MAAM,uCAAuC,CAAC;AAE5E,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAMxD,MAAM,UAAU,mBAAmB,CAAC,EAAC,QAAQ,EAA2B;IACpE,OAAO,CACH,KAAC,qBAAqB,cAClB,KAAC,uBAAuB,cACpB,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,GAC7B,GACN,CAC3B,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"TenantDrawerWrappers.js","sourceRoot":"","sources":["../../../src/containers/Tenant/TenantDrawerWrappers.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,qBAAqB,EAAC,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAC,uBAAuB,EAAC,MAAM,wCAAwC,CAAC;AAE/E,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAMxD,MAAM,UAAU,mBAAmB,CAAC,EAAC,QAAQ,EAA2B;IACpE,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC;IAE9C,OAAO,CACH,KAAC,qBAAqB,cAClB,KAAC,uBAAuB,IAAC,WAAW,EAAE,WAAW,YAC7C,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,GAC7B,GACN,CAC3B,CAAC;AACN,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { TenantDiagnosticsTab, TenantPage } from '../../../store/reducers/tenant/types';
2
- export declare const V2_DATABASE_PAGE_DIAGNOSTICS_TABS: readonly ["database", "monitoring", "topQueries", "storage", "network", "configs", "operations", "backups"];
3
- export declare function getTenantPageForDiagnosticsTab(tab: TenantDiagnosticsTab, isV2Enabled: boolean): TenantPage;
2
+ export declare const V2_DATABASE_PAGE_DIAGNOSTICS_TABS: readonly ["database", "monitoring", "topQueries", "nodes", "tablets", "storage", "network", "configs", "operations", "backups"];
3
+ export declare function getTenantPageForDiagnosticsTab(tab: TenantDiagnosticsTab, isV2Enabled: boolean, currentTenantPage?: TenantPage): TenantPage;
@@ -3,10 +3,13 @@ import { TENANT_DIAGNOSTICS_TABS_IDS, TENANT_PAGES_IDS, } from '../../../store/r
3
3
  // Route each tab to the page that renders it; otherwise Diagnostics falls back to the
4
4
  // first available tab and actions like "Monitoring" appear to do nothing.
5
5
  // These tabs live under databasePage=database; the rest stay under databasePage=diagnostics.
6
+ // Tabs listed in V2_DUPLICATED_TABS are available on both pages.
6
7
  export const V2_DATABASE_PAGE_DIAGNOSTICS_TABS = [
7
8
  TENANT_DIAGNOSTICS_TABS_IDS.database,
8
9
  TENANT_DIAGNOSTICS_TABS_IDS.monitoring,
9
10
  TENANT_DIAGNOSTICS_TABS_IDS.topQueries,
11
+ TENANT_DIAGNOSTICS_TABS_IDS.nodes,
12
+ TENANT_DIAGNOSTICS_TABS_IDS.tablets,
10
13
  TENANT_DIAGNOSTICS_TABS_IDS.storage,
11
14
  TENANT_DIAGNOSTICS_TABS_IDS.network,
12
15
  TENANT_DIAGNOSTICS_TABS_IDS.configs,
@@ -14,10 +17,19 @@ export const V2_DATABASE_PAGE_DIAGNOSTICS_TABS = [
14
17
  TENANT_DIAGNOSTICS_TABS_IDS.backups,
15
18
  ];
16
19
  const V2_DATABASE_PAGE_TABS = new Set(V2_DATABASE_PAGE_DIAGNOSTICS_TABS);
17
- export function getTenantPageForDiagnosticsTab(tab, isV2Enabled) {
20
+ const V2_DUPLICATED_TABS = new Set([
21
+ TENANT_DIAGNOSTICS_TABS_IDS.nodes,
22
+ TENANT_DIAGNOSTICS_TABS_IDS.tablets,
23
+ ]);
24
+ export function getTenantPageForDiagnosticsTab(tab, isV2Enabled, currentTenantPage) {
18
25
  if (!isV2Enabled) {
19
26
  return TENANT_PAGES_IDS.diagnostics;
20
27
  }
28
+ if (V2_DUPLICATED_TABS.has(tab)) {
29
+ return currentTenantPage === TENANT_PAGES_IDS.database
30
+ ? TENANT_PAGES_IDS.database
31
+ : TENANT_PAGES_IDS.diagnostics;
32
+ }
21
33
  return V2_DATABASE_PAGE_TABS.has(tab)
22
34
  ? TENANT_PAGES_IDS.database
23
35
  : TENANT_PAGES_IDS.diagnostics;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticsNavigation.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/utils/diagnosticsNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,gBAAgB,GACnB,MAAM,0CAA0C,CAAC;AAGlD,2FAA2F;AAC3F,sFAAsF;AACtF,0EAA0E;AAC1E,6FAA6F;AAC7F,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC7C,2BAA2B,CAAC,QAAQ;IACpC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,OAAO;CACa,CAAC;AAErD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAuB,iCAAiC,CAAC,CAAC;AAE/F,MAAM,UAAU,8BAA8B,CAC1C,GAAyB,EACzB,WAAoB;IAEpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC,WAAW,CAAC;IACxC,CAAC;IACD,OAAO,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC;QACjC,CAAC,CAAC,gBAAgB,CAAC,QAAQ;QAC3B,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"diagnosticsNavigation.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/utils/diagnosticsNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,gBAAgB,GACnB,MAAM,0CAA0C,CAAC;AAGlD,2FAA2F;AAC3F,sFAAsF;AACtF,0EAA0E;AAC1E,6FAA6F;AAC7F,iEAAiE;AACjE,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC7C,2BAA2B,CAAC,QAAQ;IACpC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,KAAK;IACjC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,OAAO;CACa,CAAC;AAErD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAuB,iCAAiC,CAAC,CAAC;AAC/F,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAuB;IACrD,2BAA2B,CAAC,KAAK;IACjC,2BAA2B,CAAC,OAAO;CACtC,CAAC,CAAC;AAEH,MAAM,UAAU,8BAA8B,CAC1C,GAAyB,EACzB,WAAoB,EACpB,iBAA8B;IAE9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC,WAAW,CAAC;IACxC,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,iBAAiB,KAAK,gBAAgB,CAAC,QAAQ;YAClD,CAAC,CAAC,gBAAgB,CAAC,QAAQ;YAC3B,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;IACvC,CAAC;IACD,OAAO,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC;QACjC,CAAC,CAAC,gBAAgB,CAAC,QAAQ;QAC3B,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;AACvC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { PreparedTenant } from '../../store/reducers/tenants/types';
3
+ export type DatabaseStatusClickHandler = (tenant: PreparedTenant, database: string | undefined) => void;
4
+ interface DatabaseDrawerHealthcheckProps {
5
+ children: (onStatusClick: DatabaseStatusClickHandler) => React.ReactNode;
6
+ clusterName?: string;
7
+ }
8
+ export declare function DatabaseDrawerHealthcheck({ children, clusterName }: DatabaseDrawerHealthcheckProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { selectAllHealthcheckInfo, selectCheckStatus, } from '../../store/reducers/healthcheckInfo/healthcheckInfo';
4
+ import { useTypedSelector } from '../../utils/hooks';
5
+ import { Healthcheck } from '../Tenant/Healthcheck/Healthcheck';
6
+ import { HealthcheckDrawer } from '../Tenant/Healthcheck/components/HealthcheckDrawer';
7
+ import tenantI18n from '../Tenant/i18n';
8
+ import { useTenantQueryParams } from '../Tenant/useTenantQueryParams';
9
+ export function DatabaseDrawerHealthcheck({ children, clusterName }) {
10
+ var _a, _b;
11
+ const [selectedDatabase, setSelectedDatabase] = React.useState();
12
+ const { handleIssuesFilterChange, handleHealthcheckViewChange } = useTenantQueryParams();
13
+ const selectedTenant = selectedDatabase === null || selectedDatabase === void 0 ? void 0 : selectedDatabase.tenant;
14
+ const database = (_a = selectedDatabase === null || selectedDatabase === void 0 ? void 0 : selectedDatabase.database) !== null && _a !== void 0 ? _a : '';
15
+ const databaseName = (_b = selectedTenant === null || selectedTenant === void 0 ? void 0 : selectedTenant.Name) !== null && _b !== void 0 ? _b : '';
16
+ const selectedClusterName = clusterName !== null && clusterName !== void 0 ? clusterName : selectedTenant === null || selectedTenant === void 0 ? void 0 : selectedTenant.Cluster;
17
+ const databaseType = selectedTenant === null || selectedTenant === void 0 ? void 0 : selectedTenant.Type;
18
+ const healthcheckStatus = useTypedSelector((state) => selectCheckStatus(state, database, selectedClusterName));
19
+ const healthcheckData = useTypedSelector((state) => selectAllHealthcheckInfo(state, database, selectedClusterName));
20
+ const handleStatusClick = React.useCallback((tenant, selectedDatabaseValue) => {
21
+ if (selectedDatabaseValue && tenant.Type !== 'Serverless') {
22
+ setSelectedDatabase({ tenant, database: selectedDatabaseValue });
23
+ }
24
+ }, []);
25
+ const handleCloseDrawer = React.useCallback(() => {
26
+ setSelectedDatabase(undefined);
27
+ handleIssuesFilterChange(undefined);
28
+ handleHealthcheckViewChange(undefined);
29
+ }, [handleHealthcheckViewChange, handleIssuesFilterChange]);
30
+ const renderDrawerContent = React.useCallback(() => {
31
+ if (!database) {
32
+ return null;
33
+ }
34
+ return (_jsx(Healthcheck, { database: database, clusterName: selectedClusterName, databaseType: databaseType }));
35
+ }, [database, databaseType, selectedClusterName]);
36
+ const title = `${tenantI18n('title_healthcheck-dashboard')}${databaseName ? `: ${databaseName}` : ''}`;
37
+ return (_jsx(HealthcheckDrawer, { isDrawerVisible: Boolean(database), onCloseDrawer: handleCloseDrawer, renderDrawerContent: renderDrawerContent, drawerId: "database-list-healthcheck-details", storageKey: "database-list-healthcheck-details-drawer-width", title: title, status: healthcheckStatus, healthcheckData: healthcheckData, downloadFilePrefix: `${databaseName || database}-healthcheck`, downloadTooltip: tenantI18n('action_download-healthcheck'), isDownloadDisabled: !healthcheckData, children: children(handleStatusClick) }));
38
+ }
39
+ //# sourceMappingURL=DatabaseDrawerHealthcheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseDrawerHealthcheck.js","sourceRoot":"","sources":["../../../src/containers/Tenants/DatabaseDrawerHealthcheck.tsx"],"names":[],"mappings":"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"}
@@ -11,5 +11,5 @@ interface TenantsTableProps {
11
11
  showWithProblemsFilter?: boolean;
12
12
  showPoolsColumn?: boolean;
13
13
  }
14
- export declare const TenantsTable: ({ clusterName, environmentName, isMetaDatabasesAvailable, scrollContainerRef, additionalTenantsProps, showDomainDatabase, showWithProblemsFilter, showPoolsColumn, }: TenantsTableProps) => import("react/jsx-runtime").JSX.Element;
14
+ export declare function TenantsTable(props: TenantsTableProps): import("react/jsx-runtime").JSX.Element;
15
15
  export {};
@@ -27,6 +27,7 @@ import { useAutoRefreshInterval, useSetting } from '../../utils/hooks';
27
27
  import { useSelectedColumns } from '../../utils/hooks/useSelectedColumns';
28
28
  import { getIllustration } from '../../utils/illustrations';
29
29
  import { isNumeric } from '../../utils/utils';
30
+ import { DatabaseDrawerHealthcheck } from './DatabaseDrawerHealthcheck';
30
31
  import { DATABASES_COLUMNS_IDS, DATABASES_COLUMNS_TITLES, DATABASES_DEFAULT_COLUMNS, DATABASES_REQUIRED_COLUMNS, DATABASES_SELECTED_COLUMNS_KEY, } from './constants';
31
32
  import i18n from './i18n';
32
33
  import { useTenantsQueryParams } from './useTenantsQueryParams';
@@ -69,7 +70,7 @@ function databaseStateToLabelTheme(state) {
69
70
  }
70
71
  }
71
72
  }
72
- export const TenantsTable = ({ clusterName, environmentName, isMetaDatabasesAvailable, scrollContainerRef, additionalTenantsProps, showDomainDatabase, showWithProblemsFilter, showPoolsColumn, }) => {
73
+ const TenantsTableContent = ({ clusterName, environmentName, isMetaDatabasesAvailable, scrollContainerRef, additionalTenantsProps, showDomainDatabase, showWithProblemsFilter, showPoolsColumn, onStatusClick, }) => {
73
74
  const SuccessImage = getIllustration('SuccessOperation');
74
75
  const [autoRefreshInterval] = useAutoRefreshInterval();
75
76
  const { currentData, isFetching, error } = tenantsApi.useGetTenantsInfoQuery({ clusterName, environmentName, isMetaDatabasesAvailable }, { pollingInterval: autoRefreshInterval });
@@ -110,7 +111,7 @@ export const TenantsTable = ({ clusterName, environmentName, isMetaDatabasesAvai
110
111
  {
111
112
  name: DATABASES_COLUMNS_IDS.Name,
112
113
  header: DATABASES_COLUMNS_TITLES[DATABASES_COLUMNS_IDS.Name],
113
- render: ({ row }) => (_jsx(TenantNameWrapper, { tenant: row, clusterName: clusterName, additionalTenantsProps: additionalTenantsProps, externalLink: Boolean(environmentName) })),
114
+ render: ({ row }) => (_jsx(TenantNameWrapper, { tenant: row, clusterName: clusterName, additionalTenantsProps: additionalTenantsProps, externalLink: Boolean(environmentName), onStatusClick: onStatusClick })),
114
115
  width: 440,
115
116
  resizeMinWidth: 200,
116
117
  sortable: true,
@@ -220,6 +221,7 @@ export const TenantsTable = ({ clusterName, environmentName, isMetaDatabasesAvai
220
221
  additionalTenantsProps,
221
222
  environmentName,
222
223
  handleSearchChange,
224
+ onStatusClick,
223
225
  showNetworkUtilization,
224
226
  showPoolsColumn,
225
227
  ]);
@@ -238,4 +240,8 @@ export const TenantsTable = ({ clusterName, environmentName, isMetaDatabasesAvai
238
240
  };
239
241
  return (_jsx("div", { className: b('table-wrapper'), children: _jsxs(TableWithControlsLayout, { fullHeight: true, children: [_jsx(TableWithControlsLayout.Controls, { renderExtraControls: renderExtraControls, children: renderControls() }), error ? _jsx(ResponseError, { error: error }) : null, _jsx(TableWithControlsLayout.Table, { scrollContainerRef: scrollContainerRef, loading: loading, scrollDependencies: [search, withProblems, sortParams], children: currentData ? renderTable() : null })] }) }));
240
242
  };
243
+ export function TenantsTable(props) {
244
+ var _a, _b;
245
+ return (_jsx(DatabaseDrawerHealthcheck, { clusterName: props.clusterName, children: (onStatusClick) => _jsx(TenantsTableContent, { ...props, onStatusClick: onStatusClick }) }, `${(_a = props.clusterName) !== null && _a !== void 0 ? _a : ''}:${(_b = props.environmentName) !== null && _b !== void 0 ? _b : ''}`));
246
+ }
241
247
  //# sourceMappingURL=TenantsTable.js.map