ydb-embedded-ui 6.6.1 → 6.8.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/package.json +31 -30
- package/dist/src/components/InfoViewer/InfoViewer.d.ts +1 -1
- package/dist/src/components/InfoViewer/InfoViewer.js +2 -1
- package/dist/src/components/InfoViewer/i18n/en.json +2 -1
- package/dist/src/components/InfoViewer/i18n/index.d.ts +1 -1
- package/dist/src/components/InfoViewer/i18n/index.js +1 -2
- package/dist/src/containers/App/App.d.ts +1 -1
- package/dist/src/containers/App/Content.js +1 -1
- package/dist/src/containers/App/appSlots.d.ts +1 -1
- package/dist/src/containers/AppWithClusters/AppWithClusters.js +1 -1
- package/dist/src/containers/AsideNavigation/Navigation.js +1 -3
- package/dist/src/containers/AsideNavigation/i18n/en.json +0 -2
- package/dist/src/containers/AsideNavigation/i18n/index.d.ts +1 -1
- package/dist/src/containers/AsideNavigation/i18n/index.js +1 -2
- package/dist/src/containers/Cluster/i18n/index.d.ts +1 -1
- package/dist/src/containers/Clusters/constants.d.ts +1 -1
- package/dist/src/containers/Header/Header.js +17 -21
- package/dist/src/containers/Header/Header.scss +14 -5
- package/dist/src/containers/Header/breadcrumbs.js +65 -71
- package/dist/src/containers/Heatmap/Heatmap.js +3 -3
- package/dist/src/containers/Nodes/Nodes.js +4 -4
- package/dist/src/containers/Nodes/VirtualNodes.js +2 -2
- package/dist/src/containers/Storage/Storage.js +2 -2
- package/dist/src/containers/Storage/StorageGroups/getStorageGroupsColumns.js +4 -3
- package/dist/src/containers/Tablets/Tablets.js +8 -8
- package/dist/src/containers/TabletsFilters/TabletsFilters.d.ts +2 -57
- package/dist/src/containers/TabletsFilters/TabletsFilters.js +70 -180
- package/dist/src/containers/Tenant/Acl/Acl.d.ts +3 -1
- package/dist/src/containers/Tenant/Acl/Acl.js +85 -69
- package/dist/src/containers/Tenant/Acl/Acl.scss +14 -9
- package/dist/src/containers/Tenant/Diagnostics/Autorefresh/AutorefreshControl.js +4 -5
- package/dist/src/containers/Tenant/Diagnostics/Consumers/Consumers.js +3 -3
- package/dist/src/containers/Tenant/Diagnostics/Describe/Describe.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/Describe/Describe.js +5 -6
- package/dist/src/containers/Tenant/Diagnostics/DetailedOverview/DetailedOverview.d.ts +1 -0
- package/dist/src/containers/Tenant/Diagnostics/DetailedOverview/DetailedOverview.js +3 -5
- package/dist/src/containers/Tenant/Diagnostics/Diagnostics.d.ts +2 -0
- package/dist/src/containers/Tenant/Diagnostics/Diagnostics.js +26 -50
- package/dist/src/containers/Tenant/Diagnostics/Diagnostics.scss +1 -1
- package/dist/src/containers/Tenant/Diagnostics/HotKeys/HotKeys.js +19 -58
- package/dist/src/containers/Tenant/Diagnostics/Network/Network.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/Network/Network.js +5 -5
- package/dist/src/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/AsyncReplicationInfo.js +1 -6
- package/dist/src/containers/Tenant/Diagnostics/Overview/ChangefeedInfo/ChangefeedInfo.d.ts +2 -1
- package/dist/src/containers/Tenant/Diagnostics/Overview/ChangefeedInfo/ChangefeedInfo.js +3 -8
- package/dist/src/containers/Tenant/Diagnostics/Overview/Overview.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/Overview/Overview.js +19 -21
- package/dist/src/containers/Tenant/Diagnostics/Overview/TableInfo/TableInfo.js +3 -3
- package/dist/src/containers/Tenant/Diagnostics/Overview/TableInfo/TableInfo.scss +0 -2
- package/dist/src/containers/Tenant/Diagnostics/Overview/TopicInfo/TopicInfo.d.ts +2 -1
- package/dist/src/containers/Tenant/Diagnostics/Overview/TopicInfo/TopicInfo.js +3 -8
- package/dist/src/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.d.ts +3 -1
- package/dist/src/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.js +5 -5
- package/dist/src/containers/Tenant/Diagnostics/Partitions/Partitions.js +4 -12
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/Healthcheck.scss +48 -57
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckDetails.d.ts +2 -5
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckDetails.js +7 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.d.ts +1 -6
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.js +22 -16
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricsCards.d.ts +2 -8
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricsCards.js +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByCpu.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByCpu.js +4 -4
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByLoad.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByLoad.js +4 -4
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopQueries.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopQueries.js +4 -4
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.d.ts +2 -1
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.js +5 -5
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantDashboard/TenantDashboard.js +3 -3
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.js +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TopNodesByMemory.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TopNodesByMemory.js +4 -4
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +7 -9
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js +3 -3
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopTables.js +3 -3
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/useHealthcheck.js +1 -1
- package/dist/src/containers/Tenant/Diagnostics/TopQueries/TopQueries.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TopQueries/TopQueries.js +5 -5
- package/dist/src/containers/Tenant/Diagnostics/TopShards/TopShards.d.ts +3 -2
- package/dist/src/containers/Tenant/Diagnostics/TopShards/TopShards.js +8 -8
- package/dist/src/containers/Tenant/EntityTitle/EntityTitle.d.ts +6 -0
- package/dist/src/containers/Tenant/EntityTitle/EntityTitle.js +11 -0
- package/dist/src/containers/Tenant/Info/ExternalDataSource/ExternalDataSource.js +0 -6
- package/dist/src/containers/Tenant/Info/ExternalTable/ExternalTable.js +0 -6
- package/dist/src/containers/Tenant/Info/View/View.js +0 -6
- package/dist/src/containers/Tenant/ObjectGeneral/ObjectGeneral.d.ts +2 -1
- package/dist/src/containers/Tenant/ObjectGeneral/ObjectGeneral.js +7 -13
- package/dist/src/containers/Tenant/ObjectSummary/ObjectSummary.d.ts +4 -4
- package/dist/src/containers/Tenant/ObjectSummary/ObjectSummary.js +159 -63
- package/dist/src/containers/Tenant/Query/Issues/Issues.js +6 -5
- package/dist/src/containers/Tenant/Query/Preview/Preview.d.ts +2 -1
- package/dist/src/containers/Tenant/Query/Preview/Preview.js +6 -6
- package/dist/src/containers/Tenant/Query/Query.d.ts +1 -0
- package/dist/src/containers/Tenant/Query/Query.scss +1 -1
- package/dist/src/containers/Tenant/Query/QueryEditor/QueryEditor.d.ts +2 -0
- package/dist/src/containers/Tenant/Query/QueryEditor/QueryEditor.js +9 -22
- package/dist/src/containers/Tenant/Query/i18n/en.json +1 -1
- package/dist/src/containers/Tenant/Schema/SchemaTree/SchemaTree.d.ts +1 -0
- package/dist/src/containers/Tenant/Schema/SchemaTree/SchemaTree.js +11 -19
- package/dist/src/containers/Tenant/Schema/SchemaViewer/SchemaViewer.d.ts +2 -2
- package/dist/src/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js +13 -8
- package/dist/src/containers/Tenant/Schema/SchemaViewer/columns.d.ts +2 -1
- package/dist/src/containers/Tenant/Schema/SchemaViewer/columns.js +21 -2
- package/dist/src/containers/Tenant/Schema/SchemaViewer/i18n/en.json +1 -0
- package/dist/src/containers/Tenant/Schema/SchemaViewer/i18n/index.d.ts +1 -1
- package/dist/src/containers/Tenant/Schema/SchemaViewer/prepareData.js +2 -1
- package/dist/src/containers/Tenant/Schema/SchemaViewer/types.d.ts +1 -0
- package/dist/src/containers/Tenant/Tenant.js +20 -36
- package/dist/src/containers/Tenant/Tenant.scss +4 -0
- package/dist/src/containers/Tenant/TenantNavigation/TenantNavigation.d.ts +2 -0
- package/dist/src/containers/Tenant/TenantNavigation/TenantNavigation.js +19 -0
- package/dist/src/containers/Tenant/TenantNavigation/TenantNavigation.scss +18 -0
- package/dist/src/containers/Tenant/TenantNavigation/useTenantNavigation.d.ts +9 -0
- package/dist/src/containers/Tenant/TenantNavigation/useTenantNavigation.js +44 -0
- package/dist/src/containers/Tenant/i18n/en.json +22 -1
- package/dist/src/containers/Tenant/i18n/index.d.ts +1 -1
- package/dist/src/containers/Tenant/utils/index.d.ts +1 -0
- package/dist/src/containers/Tenant/utils/index.js +6 -0
- package/dist/src/containers/Tenant/utils/queryTemplates.d.ts +4 -0
- package/dist/src/containers/Tenant/utils/queryTemplates.js +32 -0
- package/dist/src/containers/Tenant/utils/schemaActions.js +18 -2
- package/dist/src/containers/UserSettings/Setting.d.ts +7 -9
- package/dist/src/containers/UserSettings/Setting.js +13 -28
- package/dist/src/containers/UserSettings/UserSettings.d.ts +0 -2
- package/dist/src/containers/UserSettings/UserSettings.js +3 -6
- package/dist/src/containers/UserSettings/i18n/en.json +2 -2
- package/dist/src/containers/UserSettings/settings.js +3 -3
- package/dist/src/lib.d.ts +1 -1
- package/dist/src/lib.js +1 -1
- package/dist/src/routes.d.ts +1 -1
- package/dist/src/routes.js +3 -1
- package/dist/src/services/api.d.ts +6 -1
- package/dist/src/services/api.js +24 -3
- package/dist/src/services/settings.d.ts +1 -0
- package/dist/src/services/settings.js +3 -2
- package/dist/src/store/configureStore.d.ts +36 -134
- package/dist/src/store/configureStore.js +2 -15
- package/dist/src/store/defaultStore.d.ts +17 -81
- package/dist/src/store/reducers/api.js +0 -1
- package/dist/src/store/reducers/authentication/authentication.d.ts +51 -243
- package/dist/src/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +196 -849
- package/dist/src/store/reducers/healthcheckInfo/healthcheckInfo.js +3 -3
- package/dist/src/store/reducers/hotKeys/hotKeys.d.ts +6 -25
- package/dist/src/store/reducers/hotKeys/hotKeys.js +36 -49
- package/dist/src/store/reducers/index.d.ts +23 -100
- package/dist/src/store/reducers/index.js +0 -8
- package/dist/src/store/reducers/node/selectors.d.ts +0 -40
- package/dist/src/store/reducers/nodesList.d.ts +0 -40
- package/dist/src/store/reducers/schema/schema.d.ts +13 -149
- package/dist/src/store/reducers/schema/schema.js +45 -90
- package/dist/src/store/reducers/schema/types.d.ts +2 -21
- package/dist/src/store/reducers/schemaAcl/schemaAcl.d.ts +8 -135
- package/dist/src/store/reducers/schemaAcl/schemaAcl.js +18 -44
- package/dist/src/store/reducers/settings/settings.d.ts +17 -23
- package/dist/src/store/reducers/settings/settings.js +40 -33
- package/dist/src/store/reducers/settings/types.d.ts +1 -12
- package/dist/src/store/reducers/tablets.d.ts +288 -41
- package/dist/src/store/reducers/tablets.js +8 -4
- package/dist/src/store/reducers/tabletsFilters.d.ts +11 -164
- package/dist/src/store/reducers/tabletsFilters.js +14 -76
- package/dist/src/store/reducers/tenants/selectors.d.ts +8 -362
- package/dist/src/store/reducers/topic.d.ts +0 -600
- package/dist/src/store/state-url-mapping.js +0 -3
- package/dist/src/styles/mixins.scss +5 -0
- package/dist/src/styles/themes.scss +1 -1
- package/dist/src/types/api/acl.d.ts +2 -1
- package/dist/src/types/api/schema/schema.d.ts +5 -0
- package/dist/src/utils/constants.d.ts +1 -1
- package/dist/src/utils/constants.js +1 -1
- package/dist/src/utils/dataFormatters/dataFormatters.d.ts +2 -1
- package/dist/src/utils/dataFormatters/dataFormatters.js +7 -3
- package/dist/src/utils/hooks/index.d.ts +1 -0
- package/dist/src/utils/hooks/index.js +1 -0
- package/dist/src/utils/hooks/useAutoRefreshInterval.d.ts +1 -0
- package/dist/src/utils/hooks/useAutoRefreshInterval.js +5 -0
- package/dist/src/utils/utils.js +2 -1
- package/package.json +31 -30
- package/dist/src/components/InfoViewer/i18n/ru.json +0 -4
- package/dist/src/components/InfoViewer/schemaOverview/CDCStreamOverview.d.ts +0 -6
- package/dist/src/components/InfoViewer/schemaOverview/CDCStreamOverview.js +0 -17
- package/dist/src/components/InfoViewer/schemaOverview/PersQueueGroupOverview.d.ts +0 -6
- package/dist/src/components/InfoViewer/schemaOverview/PersQueueGroupOverview.js +0 -20
- package/dist/src/components/InfoViewer/schemaOverview/index.d.ts +0 -2
- package/dist/src/components/InfoViewer/schemaOverview/index.js +0 -2
- package/dist/src/containers/AsideNavigation/i18n/ru.json +0 -10
- package/dist/src/containers/AsideNavigation/useNavigationMenuItems.d.ts +0 -2
- package/dist/src/containers/AsideNavigation/useNavigationMenuItems.js +0 -54
- package/dist/src/containers/UserSettings/UserSettings.scss +0 -9
- package/dist/src/store/reducers/host.d.ts +0 -130
- package/dist/src/store/reducers/host.js +0 -26
- package/dist/src/store/reducers/hotKeys/types.d.ts +0 -10
- package/dist/src/store/reducers/hotKeys/types.js +0 -1
- package/dist/src/store/reducers/schemaAcl/types.d.ts +0 -12
- package/dist/src/store/reducers/schemaAcl/types.js +0 -1
- package/dist/src/types/store/host.d.ts +0 -15
- package/dist/src/types/store/host.js +0 -1
package/dist/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "ydb-embedded-ui",
|
3
|
-
"version": "6.
|
3
|
+
"version": "6.8.0",
|
4
4
|
"files": [
|
5
5
|
"dist"
|
6
6
|
],
|
@@ -12,18 +12,19 @@
|
|
12
12
|
"dependencies": {
|
13
13
|
"@bem-react/classname": "^1.6.0",
|
14
14
|
"@gravity-ui/axios-wrapper": "^1.4.1",
|
15
|
-
"@gravity-ui/chartkit": "^5.
|
16
|
-
"@gravity-ui/components": "^3.
|
17
|
-
"@gravity-ui/date-utils": "^2.
|
18
|
-
"@gravity-ui/i18n": "^1.5.
|
19
|
-
"@gravity-ui/icons": "^2.
|
20
|
-
"@gravity-ui/navigation": "^2.
|
15
|
+
"@gravity-ui/chartkit": "^5.9.0",
|
16
|
+
"@gravity-ui/components": "^3.7.0",
|
17
|
+
"@gravity-ui/date-utils": "^2.5.3",
|
18
|
+
"@gravity-ui/i18n": "^1.5.1",
|
19
|
+
"@gravity-ui/icons": "^2.10.0",
|
20
|
+
"@gravity-ui/navigation": "^2.16.0",
|
21
21
|
"@gravity-ui/paranoid": "^2.0.1",
|
22
22
|
"@gravity-ui/react-data-table": "^2.1.1",
|
23
|
-
"@gravity-ui/uikit": "^6.
|
23
|
+
"@gravity-ui/uikit": "^6.20.1",
|
24
24
|
"@gravity-ui/websql-autocomplete": "^9.1.0",
|
25
25
|
"@reduxjs/toolkit": "^2.2.3",
|
26
|
-
"axios": "^1.
|
26
|
+
"axios": "^1.7.2",
|
27
|
+
"axios-retry": "^4.4.0",
|
27
28
|
"colord": "^2.9.3",
|
28
29
|
"copy-to-clipboard": "^3.3.3",
|
29
30
|
"crc-32": "^1.2.2",
|
@@ -34,17 +35,17 @@
|
|
34
35
|
"path-to-regexp": "^3.0.0",
|
35
36
|
"qs": "^6.12.0",
|
36
37
|
"react-error-boundary": "^4.0.13",
|
37
|
-
"react-helmet-async": "2.0.
|
38
|
+
"react-helmet-async": "^2.0.5",
|
38
39
|
"react-json-inspector": "^7.1.1",
|
39
40
|
"react-list": "^0.8.17",
|
40
41
|
"react-monaco-editor": "^0.55.0",
|
41
|
-
"react-redux": "^9.1.
|
42
|
+
"react-redux": "^9.1.2",
|
42
43
|
"react-router": "^5.3.4",
|
43
44
|
"react-router-dom": "^5.3.4",
|
44
45
|
"react-split": "^2.0.14",
|
45
46
|
"redux": "^5.0.1",
|
46
47
|
"redux-location-state": "^2.8.2",
|
47
|
-
"tslib": "^2.6.
|
48
|
+
"tslib": "^2.6.3",
|
48
49
|
"url": "^0.11.3",
|
49
50
|
"use-query-params": "^2.2.1",
|
50
51
|
"web-vitals": "^1.1.2",
|
@@ -121,54 +122,54 @@
|
|
121
122
|
]
|
122
123
|
},
|
123
124
|
"devDependencies": {
|
124
|
-
"@commitlint/cli": "^19.
|
125
|
-
"@commitlint/config-conventional": "^19.
|
125
|
+
"@commitlint/cli": "^19.3.0",
|
126
|
+
"@commitlint/config-conventional": "^19.2.2",
|
126
127
|
"@gravity-ui/eslint-config": "^3.2.0",
|
127
128
|
"@gravity-ui/prettier-config": "^1.1.0",
|
128
129
|
"@gravity-ui/stylelint-config": "^4.0.1",
|
129
130
|
"@gravity-ui/tsconfig": "^1.0.0",
|
130
131
|
"@playwright/test": "^1.42.1",
|
131
|
-
"@testing-library/jest-dom": "^6.4.
|
132
|
+
"@testing-library/jest-dom": "^6.4.6",
|
132
133
|
"@testing-library/react": "^14.2.2",
|
133
134
|
"@testing-library/user-event": "^14.5.2",
|
134
135
|
"@types/jest": "^29.5.12",
|
135
136
|
"@types/lodash": "^4.17.0",
|
136
137
|
"@types/numeral": "^2.0.5",
|
137
|
-
"@types/qs": "^6.9.
|
138
|
-
"@types/react": "^18.
|
139
|
-
"@types/react-dom": "^18.
|
138
|
+
"@types/qs": "^6.9.15",
|
139
|
+
"@types/react": "^18.3.3",
|
140
|
+
"@types/react-dom": "^18.3.0",
|
140
141
|
"@types/react-router": "^5.1.20",
|
141
142
|
"@types/react-router-dom": "^5.3.3",
|
142
143
|
"copyfiles": "^2.4.1",
|
143
144
|
"http-proxy-middleware": "^2.0.6",
|
144
145
|
"husky": "^9.0.11",
|
145
146
|
"jest-transform-css": "^6.0.1",
|
146
|
-
"lint-staged": "^15.2.
|
147
|
+
"lint-staged": "^15.2.7",
|
147
148
|
"npm-run-all": "^4.1.5",
|
148
149
|
"postcss": "^8.4.38",
|
149
150
|
"prettier": "^3.2.5",
|
150
151
|
"prop-types": "^15.8.1",
|
151
|
-
"react": "^18.
|
152
|
+
"react": "^18.3.1",
|
152
153
|
"react-app-rewired": "^2.2.1",
|
153
|
-
"react-dom": "^18.
|
154
|
+
"react-dom": "^18.3.1",
|
154
155
|
"react-scripts": "^5.0.1",
|
155
156
|
"sass": "^1.72.0",
|
156
157
|
"source-map-explorer": "^2.5.3",
|
157
|
-
"stylelint": "^15.
|
158
|
-
"ts-jest": "^29.1.
|
158
|
+
"stylelint": "^15.11.0",
|
159
|
+
"ts-jest": "^29.1.5",
|
159
160
|
"typescript": "^5.4.3"
|
160
161
|
},
|
161
162
|
"peerDependencies": {
|
162
163
|
"prop-types": "^15.8.1",
|
163
|
-
"react": "^18.
|
164
|
-
"react-dom": "^18.
|
164
|
+
"react": "^18.3.1",
|
165
|
+
"react-dom": "^18.3.1"
|
165
166
|
},
|
166
167
|
"overrides": {
|
167
168
|
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
168
|
-
"react": "
|
169
|
-
"react-dom": "
|
170
|
-
"redux": "
|
171
|
-
"typescript": "
|
172
|
-
"monaco-editor": "
|
169
|
+
"react": "$react",
|
170
|
+
"react-dom": "$react-dom",
|
171
|
+
"redux": "$redux",
|
172
|
+
"typescript": "$typescript",
|
173
|
+
"monaco-editor": "$monaco-editor"
|
173
174
|
}
|
174
175
|
}
|
@@ -1,12 +1,13 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
2
|
import React from 'react';
|
3
3
|
import { cn } from '../../utils/cn';
|
4
|
+
import i18n from './i18n';
|
4
5
|
import './InfoViewer.scss';
|
5
6
|
const b = cn('info-viewer');
|
6
7
|
export const InfoViewer = ({ title, info, dots = true, size, className, multilineLabels, renderEmptyState, }) => {
|
7
8
|
if ((!info || !info.length) && renderEmptyState) {
|
8
9
|
return _jsx(React.Fragment, { children: renderEmptyState({ title, size }) });
|
9
10
|
}
|
10
|
-
return (_jsxs("div", { className: b({ size }, className), children: [title && _jsx("div", { className: b('title'), children: title }), info && info.length > 0 ? (_jsx("div", { className: b('items'), children: info.map((data, infoIndex) => (_jsxs("div", { className: b('row'), children: [_jsxs("div", { className: b('label'), children: [_jsx("div", { className: b('label-text', { multiline: multilineLabels }), children: data.label }), dots && _jsx("div", { className: b('dots') })] }), _jsx("div", { className: b('value'), children: data.value })] }, infoIndex))) })) : (
|
11
|
+
return (_jsxs("div", { className: b({ size }, className), children: [title && _jsx("div", { className: b('title'), children: title }), info && info.length > 0 ? (_jsx("div", { className: b('items'), children: info.map((data, infoIndex) => (_jsxs("div", { className: b('row'), children: [_jsxs("div", { className: b('label'), children: [_jsx("div", { className: b('label-text', { multiline: multilineLabels }), children: data.label }), dots && _jsx("div", { className: b('dots') })] }), _jsx("div", { className: b('value'), children: data.value })] }, infoIndex))) })) : (i18n('no-data'))] }));
|
11
12
|
};
|
12
13
|
export default InfoViewer;
|
@@ -1,2 +1,2 @@
|
|
1
|
-
declare const _default: (key: "common.created" | "common.type", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
1
|
+
declare const _default: (key: "common.created" | "common.type" | "no-data", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
2
2
|
export default _default;
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { registerKeysets } from '../../../utils/i18n';
|
2
2
|
import en from './en.json';
|
3
|
-
import ru from './ru.json';
|
4
3
|
const COMPONENT = 'ydb-components-info-viewer';
|
5
|
-
export default registerKeysets(COMPONENT, {
|
4
|
+
export default registerKeysets(COMPONENT, { en });
|
@@ -13,9 +13,9 @@ export interface AppProps {
|
|
13
13
|
declare function App({ store, history, singleClusterMode, children, userSettings }: AppProps): import("react/jsx-runtime").JSX.Element;
|
14
14
|
declare const _default: import("react-redux").ConnectedComponent<typeof App, {
|
15
15
|
history: History<unknown>;
|
16
|
+
userSettings?: YDBEmbeddedUISettings | undefined;
|
16
17
|
store: Store<any, import("redux").UnknownAction, unknown>;
|
17
18
|
children?: React.ReactNode;
|
18
|
-
userSettings?: YDBEmbeddedUISettings | undefined;
|
19
19
|
context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").UnknownAction> | null> | undefined;
|
20
20
|
}>;
|
21
21
|
export default _default;
|
@@ -16,7 +16,7 @@ import Header from '../Header/Header';
|
|
16
16
|
import Node from '../Node/Node';
|
17
17
|
import { PDiskPage } from '../PDiskPage/PDiskPage';
|
18
18
|
import { Tablet } from '../Tablet';
|
19
|
-
import TabletsFilters from '../TabletsFilters/TabletsFilters';
|
19
|
+
import { TabletsFilters } from '../TabletsFilters/TabletsFilters';
|
20
20
|
import Tenant from '../Tenant/Tenant';
|
21
21
|
import { VDiskPage } from '../VDiskPage/VDiskPage';
|
22
22
|
import { ClusterSlot, ClustersSlot, NodeSlot, PDiskPageSlot, RedirectSlot, RoutesSlot, TabletSlot, TabletsFiltersSlot, TenantSlot, VDiskPageSlot, } from './appSlots';
|
@@ -5,7 +5,7 @@ import type { Clusters } from '../Clusters/Clusters';
|
|
5
5
|
import type Node from '../Node/Node';
|
6
6
|
import type { PDiskPage } from '../PDiskPage/PDiskPage';
|
7
7
|
import type { Tablet } from '../Tablet';
|
8
|
-
import type TabletsFilters from '../TabletsFilters/TabletsFilters';
|
8
|
+
import type { TabletsFilters } from '../TabletsFilters/TabletsFilters';
|
9
9
|
import type Tenant from '../Tenant/Tenant';
|
10
10
|
import type { VDiskPage } from '../VDiskPage/VDiskPage';
|
11
11
|
export declare const ClustersSlot: import("../../components/slots/types").SlotComponent<{
|
@@ -10,7 +10,7 @@ import i18n from './i18n';
|
|
10
10
|
const defaultUserSettings = settings;
|
11
11
|
defaultUserSettings[2].sections[0].settings.push({
|
12
12
|
title: i18n('settings.useClusterBalancerAsBackend.title'),
|
13
|
-
|
13
|
+
description: i18n('settings.useClusterBalancerAsBackend.popover'),
|
14
14
|
settingKey: USE_CLUSTER_BALANCER_AS_BACKEND_KEY,
|
15
15
|
});
|
16
16
|
export function AppWithClusters({ store, history, getMonitoringLink = getMonitoringLinkDefault, getMonitoringClusterLink = getMonitoringClusterLinkDefault, userSettings = defaultUserSettings, children, }) {
|
@@ -2,9 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useComponent } from '../../components/ComponentsProvider/ComponentsProvider';
|
3
3
|
import { UserSettings } from '../UserSettings/UserSettings';
|
4
4
|
import { YdbInternalUser } from './YdbInternalUser/YdbInternalUser';
|
5
|
-
import { useNavigationMenuItems } from './useNavigationMenuItems';
|
6
5
|
export function Navigation({ children, userSettings }) {
|
7
6
|
const AsideNavigation = useComponent('AsideNavigation');
|
8
|
-
|
9
|
-
return (_jsx(AsideNavigation, { settings: _jsx(UserSettings, { settings: userSettings }), menuItems: menuItems, ydbInternalUser: _jsx(YdbInternalUser, {}), content: children }));
|
7
|
+
return (_jsx(AsideNavigation, { settings: _jsx(UserSettings, { settings: userSettings }), ydbInternalUser: _jsx(YdbInternalUser, {}), content: children }));
|
10
8
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
declare const _default: (key: "
|
1
|
+
declare const _default: (key: "navigation-item.documentation" | "navigation-item.settings" | "navigation-item.account" | "account.user" | "account.login" | "account.logout", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
2
2
|
export default _default;
|
@@ -1,2 +1,2 @@
|
|
1
|
-
declare const _default: (key: "nodes" | "tablets" | "versions" | "
|
1
|
+
declare const _default: (key: "nodes" | "tablets" | "versions" | "load" | "links" | "disk-type" | "erasure" | "allocated" | "available" | "usage" | "dc" | "databases" | "storage-size" | "storage-groups", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
2
2
|
export default _default;
|
@@ -14,7 +14,7 @@ export declare const COLUMNS_NAMES: {
|
|
14
14
|
readonly DESCRIPTION: "description";
|
15
15
|
readonly BALANCER: "balancer";
|
16
16
|
};
|
17
|
-
export declare const DEFAULT_COLUMNS: ("nodes" | "storage" | "status" | "tenants" | "versions" | "service" | "
|
17
|
+
export declare const DEFAULT_COLUMNS: ("nodes" | "storage" | "status" | "tenants" | "versions" | "service" | "load" | "hosts" | "balancer" | "title" | "owner")[];
|
18
18
|
export declare const COLUMNS_TITLES: {
|
19
19
|
readonly title: "Cluster";
|
20
20
|
readonly versions: "Versions";
|
@@ -1,7 +1,9 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
2
|
import React from 'react';
|
3
3
|
import { Breadcrumbs } from '@gravity-ui/uikit';
|
4
|
+
import { get } from 'lodash';
|
4
5
|
import { useHistory, useLocation } from 'react-router';
|
6
|
+
import { InternalLink } from '../../components/InternalLink';
|
5
7
|
import { LinkWithIcon } from '../../components/LinkWithIcon/LinkWithIcon';
|
6
8
|
import { parseQuery } from '../../routes';
|
7
9
|
import { backend, customBackend } from '../../store';
|
@@ -19,41 +21,35 @@ const getInternalLink = (singleClusterMode) => {
|
|
19
21
|
return backend + '/internal';
|
20
22
|
};
|
21
23
|
function Header({ mainPage }) {
|
22
|
-
var _a;
|
23
24
|
const history = useHistory();
|
24
25
|
const location = useLocation();
|
26
|
+
const queryParams = parseQuery(location);
|
25
27
|
const singleClusterMode = useTypedSelector((state) => state.singleClusterMode);
|
26
28
|
const { page, pageBreadcrumbsOptions } = useTypedSelector((state) => state.header);
|
27
|
-
const
|
28
|
-
const
|
29
|
-
const { currentData: { clusterData: data } = {} } = clusterApi.useGetClusterInfoQuery(clusterNameFromQuery);
|
30
|
-
const clusterNameFinal = (data === null || data === void 0 ? void 0 : data.Name) || clusterNameFromQuery;
|
29
|
+
const clusterInfo = clusterApi.useGetClusterInfoQuery(queryParams.clusterName);
|
30
|
+
const clusterName = get(clusterInfo, ['currentData', 'clusterData', 'Name'], queryParams.clusterName);
|
31
31
|
const breadcrumbItems = React.useMemo(() => {
|
32
32
|
const rawBreadcrumbs = [];
|
33
|
-
|
33
|
+
const options = pageBreadcrumbsOptions;
|
34
34
|
if (mainPage) {
|
35
35
|
rawBreadcrumbs.push(mainPage);
|
36
36
|
}
|
37
|
-
if (
|
38
|
-
options =
|
37
|
+
if (clusterName) {
|
38
|
+
options.clusterName = clusterName;
|
39
39
|
}
|
40
40
|
const breadcrumbs = getBreadcrumbs(page, options, rawBreadcrumbs, queryParams);
|
41
41
|
return breadcrumbs.map((item) => {
|
42
|
-
|
43
|
-
if (item.link) {
|
44
|
-
history.push(item.link);
|
45
|
-
}
|
46
|
-
};
|
47
|
-
return Object.assign(Object.assign({}, item), { action });
|
42
|
+
return Object.assign(Object.assign({}, item), { action: () => { } });
|
48
43
|
});
|
49
|
-
}, [
|
44
|
+
}, [clusterName, mainPage, history, queryParams, page, pageBreadcrumbsOptions]);
|
50
45
|
const renderHeader = () => {
|
51
|
-
return (_jsxs("header", { className: b(), children: [_jsx(
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
46
|
+
return (_jsxs("header", { className: b(), children: [_jsx(Breadcrumbs, { items: breadcrumbItems, lastDisplayedItemsCount: 1, firstDisplayedItemsCount: 1, className: b('breadcrumbs'), renderItem: ({ item, isCurrent }) => {
|
47
|
+
const { icon, text, link } = item;
|
48
|
+
return (_jsxs(InternalLink, { className: b('breadcrumbs-item', {
|
49
|
+
active: isCurrent,
|
50
|
+
link: !isCurrent,
|
51
|
+
}), to: isCurrent ? undefined : link, children: [icon ? (_jsx("span", { className: b('breadcrumbs-icon'), children: icon })) : null, _jsx("span", { children: text })] }));
|
52
|
+
} }), _jsx(LinkWithIcon, { title: DEVELOPER_UI_TITLE, url: getInternalLink(singleClusterMode) })] }));
|
57
53
|
};
|
58
54
|
return renderHeader();
|
59
55
|
}
|
@@ -10,14 +10,23 @@
|
|
10
10
|
|
11
11
|
border-bottom: 1px solid var(--g-color-line-generic);
|
12
12
|
|
13
|
-
&
|
13
|
+
&__breadcrumbs-item {
|
14
14
|
display: flex;
|
15
|
-
|
15
|
+
gap: 3px;
|
16
|
+
|
17
|
+
color: var(--g-color-text-secondary);
|
16
18
|
|
17
|
-
&
|
18
|
-
|
19
|
+
&_link:hover {
|
20
|
+
color: var(--g-color-text-complementary);
|
21
|
+
}
|
19
22
|
|
20
|
-
|
23
|
+
&_active {
|
24
|
+
color: var(--g-color-text-primary);
|
21
25
|
}
|
22
26
|
}
|
27
|
+
|
28
|
+
&__breadcrumbs-icon {
|
29
|
+
display: flex;
|
30
|
+
align-items: center;
|
31
|
+
}
|
23
32
|
}
|
@@ -11,6 +11,10 @@ import { headerKeyset } from './i18n';
|
|
11
11
|
const prepareTenantName = (tenantName) => {
|
12
12
|
return tenantName.startsWith('/') ? tenantName.slice(1) : tenantName;
|
13
13
|
};
|
14
|
+
const getQueryForTenant = (type) => ({
|
15
|
+
[TENANT_PAGE]: TENANT_PAGES_IDS.diagnostics,
|
16
|
+
[TenantTabsGroups.diagnosticsTab]: TENANT_DIAGNOSTICS_TABS_IDS[type],
|
17
|
+
});
|
14
18
|
const getClusterBreadcrumbs = (options, query = {}) => {
|
15
19
|
const { clusterName, clusterTab } = options;
|
16
20
|
return [
|
@@ -23,109 +27,99 @@ const getClusterBreadcrumbs = (options, query = {}) => {
|
|
23
27
|
};
|
24
28
|
const getTenantBreadcrumbs = (options, query = {}) => {
|
25
29
|
const { tenantName } = options;
|
30
|
+
const breadcrumbs = getClusterBreadcrumbs(options, query);
|
26
31
|
const text = tenantName ? prepareTenantName(tenantName) : headerKeyset('breadcrumbs.tenant');
|
27
32
|
const link = tenantName ? getTenantPath(Object.assign(Object.assign({}, query), { name: tenantName })) : undefined;
|
28
|
-
|
33
|
+
const lastItem = { text, link, icon: _jsx(DatabaseIcon, {}) };
|
34
|
+
breadcrumbs.push(lastItem);
|
35
|
+
return breadcrumbs;
|
29
36
|
};
|
30
37
|
const getNodeBreadcrumbs = (options, query = {}) => {
|
31
38
|
const { tenantName, nodeId } = options;
|
32
|
-
let breadcrumbs;
|
33
39
|
// Compute nodes have tenantName, storage nodes doesn't
|
34
|
-
const
|
35
|
-
const
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
40
|
+
const isStorage = !tenantName;
|
41
|
+
const tenantQuery = getQueryForTenant('nodes');
|
42
|
+
const breadcrumbs = isStorage
|
43
|
+
? getClusterBreadcrumbs(options, query)
|
44
|
+
: getTenantBreadcrumbs(options, Object.assign(Object.assign({}, query), tenantQuery));
|
45
|
+
let text = headerKeyset('breadcrumbs.node');
|
46
|
+
if (nodeId) {
|
47
|
+
text += ` ${nodeId}`;
|
41
48
|
}
|
42
|
-
const
|
43
|
-
? `${headerKeyset('breadcrumbs.node')} ${nodeId}`
|
44
|
-
: headerKeyset('breadcrumbs.node');
|
45
|
-
const link = nodeId ? getDefaultNodePath(nodeId, query) : undefined;
|
46
|
-
const icon = isStorageNode ? _jsx(StorageNodeIcon, {}) : _jsx(ComputeNodeIcon, {});
|
47
|
-
breadcrumbs.push({
|
49
|
+
const lastItem = {
|
48
50
|
text,
|
49
|
-
link,
|
50
|
-
icon,
|
51
|
-
}
|
51
|
+
link: nodeId ? getDefaultNodePath(nodeId, query) : undefined,
|
52
|
+
icon: isStorage ? _jsx(StorageNodeIcon, {}) : _jsx(ComputeNodeIcon, {}),
|
53
|
+
};
|
54
|
+
breadcrumbs.push(lastItem);
|
52
55
|
return breadcrumbs;
|
53
56
|
};
|
54
57
|
const getPDiskBreadcrumbs = (options, query = {}) => {
|
55
58
|
const { nodeId, pDiskId } = options;
|
56
59
|
const breadcrumbs = getNodeBreadcrumbs({
|
57
|
-
|
58
|
-
tenantName: undefined,
|
59
|
-
nodeId: nodeId,
|
60
|
+
nodeId,
|
60
61
|
});
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
62
|
+
let text = headerKeyset('breadcrumbs.pDisk');
|
63
|
+
if (pDiskId) {
|
64
|
+
text += ` ${pDiskId}`;
|
65
|
+
}
|
66
|
+
const hasLink = pDiskId && nodeId;
|
67
|
+
const link = hasLink ? getPDiskPagePath(pDiskId, nodeId, query) : undefined;
|
68
|
+
const lastItem = {
|
66
69
|
text,
|
67
70
|
link,
|
68
|
-
}
|
71
|
+
};
|
72
|
+
breadcrumbs.push(lastItem);
|
69
73
|
return breadcrumbs;
|
70
74
|
};
|
71
75
|
const getVDiskBreadcrumbs = (options, query = {}) => {
|
72
76
|
const { vDiskSlotId } = options;
|
73
77
|
const breadcrumbs = getPDiskBreadcrumbs(options, query);
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
+
let text = headerKeyset('breadcrumbs.vDisk');
|
79
|
+
if (vDiskSlotId) {
|
80
|
+
text += ` ${vDiskSlotId}`;
|
81
|
+
}
|
82
|
+
const lastItem = {
|
83
|
+
text,
|
84
|
+
};
|
85
|
+
breadcrumbs.push(lastItem);
|
78
86
|
return breadcrumbs;
|
79
87
|
};
|
80
|
-
const
|
88
|
+
const getTabletsBreadcrumbs = (options, query = {}) => {
|
81
89
|
const { tenantName, nodeIds } = options;
|
82
|
-
const
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
breadcrumbs = getTenantBreadcrumbs(options, newQuery);
|
87
|
-
}
|
88
|
-
else {
|
89
|
-
breadcrumbs = getClusterBreadcrumbs(options, query);
|
90
|
-
}
|
90
|
+
const tenantQuery = getQueryForTenant('tablets');
|
91
|
+
const breadcrumbs = tenantName
|
92
|
+
? getTenantBreadcrumbs(options, Object.assign(Object.assign({}, query), tenantQuery))
|
93
|
+
: getClusterBreadcrumbs(options, query);
|
91
94
|
const link = createHref(routes.tabletsFilters, undefined, Object.assign(Object.assign({}, query), { nodeIds, path: tenantName }));
|
92
|
-
|
95
|
+
const lastItem = { text: headerKeyset('breadcrumbs.tablets'), link };
|
96
|
+
breadcrumbs.push(lastItem);
|
93
97
|
return breadcrumbs;
|
94
98
|
};
|
95
|
-
const
|
99
|
+
const getTabletBreadcrumbs = (options, query = {}) => {
|
96
100
|
const { tabletId, tabletType } = options;
|
97
|
-
const breadcrumbs =
|
98
|
-
|
101
|
+
const breadcrumbs = getTabletsBreadcrumbs(options, query);
|
102
|
+
const lastItem = {
|
99
103
|
text: tabletId || headerKeyset('breadcrumbs.tablet'),
|
100
104
|
icon: _jsx(TabletIcon, { text: getTabletLabel(tabletType) }),
|
101
|
-
}
|
105
|
+
};
|
106
|
+
breadcrumbs.push(lastItem);
|
102
107
|
return breadcrumbs;
|
103
108
|
};
|
109
|
+
const mapPageToGetter = {
|
110
|
+
cluster: getClusterBreadcrumbs,
|
111
|
+
node: getNodeBreadcrumbs,
|
112
|
+
pDisk: getPDiskBreadcrumbs,
|
113
|
+
tablet: getTabletBreadcrumbs,
|
114
|
+
tablets: getTabletsBreadcrumbs,
|
115
|
+
tenant: getTenantBreadcrumbs,
|
116
|
+
vDisk: getVDiskBreadcrumbs,
|
117
|
+
};
|
104
118
|
export const getBreadcrumbs = (page, options, rawBreadcrumbs = [], query = {}) => {
|
105
|
-
|
106
|
-
|
107
|
-
return [...rawBreadcrumbs, ...getClusterBreadcrumbs(options, query)];
|
108
|
-
}
|
109
|
-
case 'tenant': {
|
110
|
-
return [...rawBreadcrumbs, ...getTenantBreadcrumbs(options, query)];
|
111
|
-
}
|
112
|
-
case 'node': {
|
113
|
-
return [...rawBreadcrumbs, ...getNodeBreadcrumbs(options, query)];
|
114
|
-
}
|
115
|
-
case 'pDisk': {
|
116
|
-
return [...rawBreadcrumbs, ...getPDiskBreadcrumbs(options, query)];
|
117
|
-
}
|
118
|
-
case 'vDisk': {
|
119
|
-
return [...rawBreadcrumbs, ...getVDiskBreadcrumbs(options, query)];
|
120
|
-
}
|
121
|
-
case 'tablets': {
|
122
|
-
return [...rawBreadcrumbs, ...getTabletsBreadcrubms(options, query)];
|
123
|
-
}
|
124
|
-
case 'tablet': {
|
125
|
-
return [...rawBreadcrumbs, ...getTabletBreadcrubms(options, query)];
|
126
|
-
}
|
127
|
-
default: {
|
128
|
-
return rawBreadcrumbs;
|
129
|
-
}
|
119
|
+
if (!page) {
|
120
|
+
return rawBreadcrumbs;
|
130
121
|
}
|
122
|
+
const getter = mapPageToGetter[page];
|
123
|
+
const pageBreadcrumbs = getter(options, query);
|
124
|
+
return [...rawBreadcrumbs, ...pageBreadcrumbs];
|
131
125
|
};
|
@@ -7,7 +7,7 @@ import { heatmapApi, setHeatmapOptions } from '../../store/reducers/heatmap';
|
|
7
7
|
import { hideTooltip, showTooltip } from '../../store/reducers/tooltip';
|
8
8
|
import { cn } from '../../utils/cn';
|
9
9
|
import { formatNumber } from '../../utils/dataFormatters/dataFormatters';
|
10
|
-
import { useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
10
|
+
import { useAutoRefreshInterval, useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
11
11
|
import { HeatmapCanvas } from './HeatmapCanvas/HeatmapCanvas';
|
12
12
|
import { Histogram } from './Histogram/Histogram';
|
13
13
|
import { COLORS_RANGE_SIZE, getColorIndex, getColorRange, getCurrentMetricLimits } from './util';
|
@@ -17,8 +17,8 @@ const COLORS_RANGE = getColorRange(COLORS_RANGE_SIZE);
|
|
17
17
|
export const Heatmap = ({ path }) => {
|
18
18
|
const dispatch = useTypedDispatch();
|
19
19
|
const itemsContainer = React.createRef();
|
20
|
-
const
|
21
|
-
const { currentData, isFetching, error } = heatmapApi.useGetHeatmapTabletsInfoQuery({ path }, { pollingInterval:
|
20
|
+
const [autoRefreshInterval] = useAutoRefreshInterval();
|
21
|
+
const { currentData, isFetching, error } = heatmapApi.useGetHeatmapTabletsInfoQuery({ path }, { pollingInterval: autoRefreshInterval });
|
22
22
|
const loading = isFetching && currentData === undefined;
|
23
23
|
const { tablets = [], metrics } = currentData || {};
|
24
24
|
const { sort, heatmap, currentMetric } = useTypedSelector((state) => state.heatmap);
|
@@ -14,10 +14,10 @@ import { TableWithControlsLayout } from '../../components/TableWithControlsLayou
|
|
14
14
|
import { UptimeFilter } from '../../components/UptimeFIlter';
|
15
15
|
import { nodesApi } from '../../store/reducers/nodes/nodes';
|
16
16
|
import { filterNodes } from '../../store/reducers/nodes/selectors';
|
17
|
-
import { ProblemFilterValues, changeFilter } from '../../store/reducers/settings/settings';
|
17
|
+
import { ProblemFilterValues, changeFilter, selectProblemFilter, } from '../../store/reducers/settings/settings';
|
18
18
|
import { cn } from '../../utils/cn';
|
19
19
|
import { DEFAULT_POLLING_INTERVAL, DEFAULT_TABLE_SETTINGS, USE_NODES_ENDPOINT_IN_DIAGNOSTICS_KEY, } from '../../utils/constants';
|
20
|
-
import { useSetting, useTableSort, useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
20
|
+
import { useAutoRefreshInterval, useSetting, useTableSort, useTypedDispatch, useTypedSelector, } from '../../utils/hooks';
|
21
21
|
import { NodesUptimeFilterValues, isSortableNodesProperty, isUnavailableNode, nodesUptimeFilterValuesSchema, } from '../../utils/nodes';
|
22
22
|
import { NODES_COLUMNS_WIDTH_LS_KEY, getNodesColumns } from './getNodesColumns';
|
23
23
|
import i18n from './i18n';
|
@@ -33,8 +33,8 @@ export const Nodes = ({ path, additionalNodesProps = {} }) => {
|
|
33
33
|
const searchValue = (_a = queryParams.search) !== null && _a !== void 0 ? _a : '';
|
34
34
|
const dispatch = useTypedDispatch();
|
35
35
|
const isClusterNodes = !path;
|
36
|
-
const problemFilter = useTypedSelector(
|
37
|
-
const
|
36
|
+
const problemFilter = useTypedSelector(selectProblemFilter);
|
37
|
+
const [autorefresh] = useAutoRefreshInterval();
|
38
38
|
const [useNodesEndpoint] = useSetting(USE_NODES_ENDPOINT_IN_DIAGNOSTICS_KEY);
|
39
39
|
const autoRefreshInterval = isClusterNodes ? DEFAULT_POLLING_INTERVAL : autorefresh;
|
40
40
|
// If there is no path, it's cluster Nodes tab
|
@@ -9,7 +9,7 @@ import { ProblemFilter } from '../../components/ProblemFilter';
|
|
9
9
|
import { Search } from '../../components/Search';
|
10
10
|
import { UptimeFilter } from '../../components/UptimeFIlter';
|
11
11
|
import { ResizeableVirtualTable } from '../../components/VirtualTable/ResizeableVirtualTable';
|
12
|
-
import { ProblemFilterValues, changeFilter } from '../../store/reducers/settings/settings';
|
12
|
+
import { ProblemFilterValues, changeFilter, selectProblemFilter, } from '../../store/reducers/settings/settings';
|
13
13
|
import { cn } from '../../utils/cn';
|
14
14
|
import { useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
15
15
|
import { NodesUptimeFilterValues, getProblemParamValue, getUptimeParamValue, isSortableNodesProperty, isUnavailableNode, nodesUptimeFilterValuesSchema, } from '../../utils/nodes';
|
@@ -27,7 +27,7 @@ export const VirtualNodes = ({ path, parentContainer, additionalNodesProps }) =>
|
|
27
27
|
const uptimeFilter = nodesUptimeFilterValuesSchema.parse(queryParams.uptimeFilter);
|
28
28
|
const searchValue = (_a = queryParams.search) !== null && _a !== void 0 ? _a : '';
|
29
29
|
const dispatch = useTypedDispatch();
|
30
|
-
const problemFilter = useTypedSelector(
|
30
|
+
const problemFilter = useTypedSelector(selectProblemFilter);
|
31
31
|
const filters = React.useMemo(() => {
|
32
32
|
return [path, searchValue, problemFilter, uptimeFilter];
|
33
33
|
}, [path, searchValue, problemFilter, uptimeFilter]);
|