ydb-embedded-ui 22.4.0 → 22.5.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 (266) hide show
  1. package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.d.ts +3 -2
  2. package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.js +19 -4
  3. package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.js.map +1 -1
  4. package/dist/components/CopyableValue/CopyableValue.d.ts +10 -0
  5. package/dist/components/CopyableValue/CopyableValue.js +10 -0
  6. package/dist/components/CopyableValue/CopyableValue.js.map +1 -0
  7. package/dist/components/CopyableValue/CopyableValue.scss +16 -0
  8. package/dist/components/CopyableValue/i18n/en.json +3 -0
  9. package/dist/components/CopyableValue/i18n/index.d.ts +2 -0
  10. package/dist/components/CopyableValue/i18n/index.js +6 -0
  11. package/dist/components/CopyableValue/i18n/index.js.map +1 -0
  12. package/dist/components/CriticalActionDialog/CriticalActionDialog.d.ts +2 -1
  13. package/dist/components/CriticalActionDialog/CriticalActionDialog.js +2 -1
  14. package/dist/components/CriticalActionDialog/CriticalActionDialog.js.map +1 -1
  15. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.d.ts +1 -21
  16. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js +40 -126
  17. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js.map +1 -1
  18. package/dist/components/DiskCapacityInfo/i18n/en.json +0 -1
  19. package/dist/components/DiskCapacityInfo/i18n/index.d.ts +1 -1
  20. package/dist/components/EntityStatus/EntityStatus.d.ts +18 -6
  21. package/dist/components/EntityStatus/EntityStatus.js +5 -1
  22. package/dist/components/EntityStatus/EntityStatus.js.map +1 -1
  23. package/dist/components/EntityStatus/EntityStatus.scss +5 -0
  24. package/dist/components/EvictVDiskButton/EvictVDiskButton.d.ts +5 -2
  25. package/dist/components/EvictVDiskButton/EvictVDiskButton.js +3 -2
  26. package/dist/components/EvictVDiskButton/EvictVDiskButton.js.map +1 -1
  27. package/dist/components/EvictVDiskButton/i18n/en.json +2 -2
  28. package/dist/components/FullNodeViewer/FullNodeViewer.js +4 -7
  29. package/dist/components/FullNodeViewer/FullNodeViewer.js.map +1 -1
  30. package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
  31. package/dist/components/HoverPopup/HoverPopup.d.ts +1 -0
  32. package/dist/components/HoverPopup/HoverPopup.js +87 -16
  33. package/dist/components/HoverPopup/HoverPopup.js.map +1 -1
  34. package/dist/components/MemoryViewer/MemoryViewer.d.ts +3 -1
  35. package/dist/components/MemoryViewer/MemoryViewer.js +25 -16
  36. package/dist/components/MemoryViewer/MemoryViewer.js.map +1 -1
  37. package/dist/components/MemoryViewer/i18n/en.json +4 -3
  38. package/dist/components/MemoryViewer/i18n/index.d.ts +1 -1
  39. package/dist/components/MemoryViewer/utils.d.ts +4 -2
  40. package/dist/components/MemoryViewer/utils.js +11 -11
  41. package/dist/components/MemoryViewer/utils.js.map +1 -1
  42. package/dist/components/PDiskInfo/PDiskInfo.d.ts +4 -9
  43. package/dist/components/PDiskInfo/PDiskInfo.js +32 -144
  44. package/dist/components/PDiskInfo/PDiskInfo.js.map +1 -1
  45. package/dist/components/PDiskInfo/PDiskInfo.scss +15 -0
  46. package/dist/components/PDiskInfo/PDiskLogSize.js +1 -1
  47. package/dist/components/PDiskInfo/PDiskLogSize.js.map +1 -1
  48. package/dist/components/PDiskInfo/i18n/en.json +6 -3
  49. package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
  50. package/dist/components/PDiskInfo/statuses.js +12 -3
  51. package/dist/components/PDiskInfo/statuses.js.map +1 -1
  52. package/dist/components/Search/Search.js +3 -1
  53. package/dist/components/Search/Search.js.map +1 -1
  54. package/dist/components/StorageGroupInfo/StorageGroupInfo.js +4 -9
  55. package/dist/components/StorageGroupInfo/StorageGroupInfo.js.map +1 -1
  56. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  57. package/dist/components/TenantNameWrapper/i18n/index.d.ts +1 -1
  58. package/dist/components/VDisk/VDisk.js +2 -2
  59. package/dist/components/VDisk/VDisk.js.map +1 -1
  60. package/dist/components/VDiskInfo/VDiskInfo.d.ts +3 -7
  61. package/dist/components/VDiskInfo/VDiskInfo.js +57 -235
  62. package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
  63. package/dist/components/VDiskInfo/VDiskInfo.scss +19 -3
  64. package/dist/components/VDiskInfo/getVDiskDetails.d.ts +7 -1
  65. package/dist/components/VDiskInfo/getVDiskDetails.js +14 -1
  66. package/dist/components/VDiskInfo/getVDiskDetails.js.map +1 -1
  67. package/dist/components/VDiskInfo/i18n/en.json +4 -13
  68. package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
  69. package/dist/components/VDiskPopup/VDiskPopup.d.ts +2 -1
  70. package/dist/components/VDiskPopup/VDiskPopup.js +10 -26
  71. package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
  72. package/dist/components/VDiskPopup/i18n/en.json +0 -2
  73. package/dist/components/VDiskPopup/i18n/index.d.ts +1 -1
  74. package/dist/components/VDiskStatus/VDiskReplicationStatus.js +1 -1
  75. package/dist/components/VDiskStatus/VDiskReplicationStatus.js.map +1 -1
  76. package/dist/components/VDiskStatus/VDiskStatus.js +2 -2
  77. package/dist/components/VDiskStatus/VDiskStatus.js.map +1 -1
  78. package/dist/components/VDiskStatus/VDiskStatus.scss +4 -0
  79. package/dist/components/VDiskStatus/statuses.js +2 -2
  80. package/dist/components/VDiskStatus/statuses.js.map +1 -1
  81. package/dist/components/nodesColumns/columns.d.ts +1 -0
  82. package/dist/components/nodesColumns/columns.js +13 -6
  83. package/dist/components/nodesColumns/columns.js.map +1 -1
  84. package/dist/containers/Clusters/Clusters.js +35 -6
  85. package/dist/containers/Clusters/Clusters.js.map +1 -1
  86. package/dist/containers/Clusters/Clusters.scss +24 -6
  87. package/dist/containers/Clusters/columns.js +9 -4
  88. package/dist/containers/Clusters/columns.js.map +1 -1
  89. package/dist/containers/Clusters/i18n/en.json +6 -0
  90. package/dist/containers/Clusters/i18n/index.d.ts +1 -1
  91. package/dist/containers/Header/Header.js +8 -0
  92. package/dist/containers/Header/Header.js.map +1 -1
  93. package/dist/containers/Header/HeaderLeftControls.js +3 -1
  94. package/dist/containers/Header/HeaderLeftControls.js.map +1 -1
  95. package/dist/containers/Header/PDiskLeftControls.d.ts +1 -0
  96. package/dist/containers/Header/PDiskLeftControls.js +24 -0
  97. package/dist/containers/Header/PDiskLeftControls.js.map +1 -0
  98. package/dist/containers/Header/VDiskLeftControls.d.ts +1 -0
  99. package/dist/containers/Header/VDiskLeftControls.js +23 -0
  100. package/dist/containers/Header/VDiskLeftControls.js.map +1 -0
  101. package/dist/containers/Header/breadcrumbs.js +5 -2
  102. package/dist/containers/Header/breadcrumbs.js.map +1 -1
  103. package/dist/containers/Header/i18n/en.json +4 -1
  104. package/dist/containers/Header/i18n/index.d.ts +1 -1
  105. package/dist/containers/Nodes/NodesControls/NodesControls.js +1 -1
  106. package/dist/containers/Nodes/NodesControls/NodesControls.js.map +1 -1
  107. package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js +5 -3
  108. package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js.map +1 -1
  109. package/dist/containers/Nodes/PaginatedNodes/NodesComponent.js +4 -2
  110. package/dist/containers/Nodes/PaginatedNodes/NodesComponent.js.map +1 -1
  111. package/dist/containers/Nodes/useDebouncedSearch.d.ts +2 -0
  112. package/dist/containers/Nodes/useDebouncedSearch.js +11 -0
  113. package/dist/containers/Nodes/useDebouncedSearch.js.map +1 -0
  114. package/dist/containers/PDiskPage/PDiskPage.js +30 -31
  115. package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
  116. package/dist/containers/PDiskPage/PDiskPage.scss +22 -11
  117. package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js +3 -3
  118. package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js.map +1 -1
  119. package/dist/containers/PDiskPage/PDiskStorageDetails.d.ts +6 -0
  120. package/dist/containers/PDiskPage/PDiskStorageDetails.js +28 -0
  121. package/dist/containers/PDiskPage/PDiskStorageDetails.js.map +1 -0
  122. package/dist/containers/PDiskPage/PDiskStorageDetails.scss +51 -0
  123. package/dist/containers/PDiskPage/i18n/en.json +2 -0
  124. package/dist/containers/PDiskPage/i18n/index.d.ts +1 -1
  125. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
  126. package/dist/containers/Storage/StorageExpertModePanel/constants.d.ts +1 -1
  127. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +1 -1
  128. package/dist/containers/Storage/useStorageQueryParams.d.ts +4 -4
  129. package/dist/containers/StorageGroupPage/StorageGroupPage.js +7 -5
  130. package/dist/containers/StorageGroupPage/StorageGroupPage.js.map +1 -1
  131. package/dist/containers/StorageGroupPage/StorageGroupPage.scss +10 -0
  132. package/dist/containers/StorageGroupPage/i18n/en.json +0 -1
  133. package/dist/containers/StorageGroupPage/i18n/index.d.ts +1 -1
  134. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/i18n/index.d.ts +1 -1
  135. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +5 -12
  136. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  137. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/i18n/index.d.ts +1 -1
  138. package/dist/containers/Tenant/Healthcheck/Healthcheck.scss +6 -1
  139. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js +2 -2
  140. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js.map +1 -1
  141. package/dist/containers/Tenant/TenantDrawerHealthcheck.js +10 -2
  142. package/dist/containers/Tenant/TenantDrawerHealthcheck.js.map +1 -1
  143. package/dist/containers/VDiskPage/VDiskPage.js +33 -33
  144. package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
  145. package/dist/containers/VDiskPage/VDiskPage.scss +21 -8
  146. package/dist/containers/VDiskPage/VDiskStorageDetails.js +27 -29
  147. package/dist/containers/VDiskPage/VDiskStorageDetails.js.map +1 -1
  148. package/dist/containers/VDiskPage/VDiskStorageDetails.scss +24 -93
  149. package/dist/containers/VDiskPage/i18n/en.json +3 -12
  150. package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
  151. package/dist/store/reducers/cluster/parseFields.js +1 -0
  152. package/dist/store/reducers/cluster/parseFields.js.map +1 -1
  153. package/dist/store/reducers/clusters/clusters.js +1 -0
  154. package/dist/store/reducers/clusters/clusters.js.map +1 -1
  155. package/dist/store/reducers/clusters/selectors.d.ts +1 -0
  156. package/dist/store/reducers/clusters/selectors.js +4 -1
  157. package/dist/store/reducers/clusters/selectors.js.map +1 -1
  158. package/dist/store/reducers/clusters/types.d.ts +2 -0
  159. package/dist/store/reducers/storage/prepareGroupsDisks.d.ts +1 -1
  160. package/dist/store/reducers/storage/prepareGroupsDisks.js +2 -1
  161. package/dist/store/reducers/storage/prepareGroupsDisks.js.map +1 -1
  162. package/dist/store/reducers/storage/utils.js +10 -3
  163. package/dist/store/reducers/storage/utils.js.map +1 -1
  164. package/dist/store/reducers/vdisk/types.d.ts +1 -1
  165. package/dist/store/reducers/vdisk/utils.js +5 -5
  166. package/dist/store/reducers/vdisk/utils.js.map +1 -1
  167. package/dist/types/api/meta.d.ts +1 -0
  168. package/dist/types/api/nodesList.d.ts +2 -0
  169. package/dist/utils/hooks/useDatabaseHealthcheckAvailable.d.ts +2 -0
  170. package/dist/utils/hooks/useDatabaseHealthcheckAvailable.js +6 -0
  171. package/dist/utils/hooks/useDatabaseHealthcheckAvailable.js.map +1 -0
  172. package/dist/utils/memory.d.ts +5 -0
  173. package/dist/utils/memory.js +9 -0
  174. package/dist/utils/memory.js.map +1 -0
  175. package/dist/utils/nodes.js +3 -3
  176. package/dist/utils/nodes.js.map +1 -1
  177. package/dist/utils/storageMetrics.d.ts +1 -0
  178. package/dist/utils/storageMetrics.js +8 -0
  179. package/dist/utils/storageMetrics.js.map +1 -1
  180. package/package.json +1 -1
  181. package/src/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.tsx +22 -3
  182. package/src/components/CopyableValue/CopyableValue.scss +16 -0
  183. package/src/components/CopyableValue/CopyableValue.tsx +40 -0
  184. package/src/components/CopyableValue/i18n/en.json +3 -0
  185. package/src/components/CopyableValue/i18n/index.ts +8 -0
  186. package/src/components/CriticalActionDialog/CriticalActionDialog.tsx +3 -0
  187. package/src/components/DiskCapacityInfo/DiskCapacityInfo.tsx +40 -185
  188. package/src/components/DiskCapacityInfo/i18n/en.json +0 -1
  189. package/src/components/EntityStatus/EntityStatus.scss +5 -0
  190. package/src/components/EntityStatus/EntityStatus.tsx +38 -5
  191. package/src/components/EvictVDiskButton/EvictVDiskButton.tsx +10 -2
  192. package/src/components/EvictVDiskButton/i18n/en.json +2 -2
  193. package/src/components/FullNodeViewer/FullNodeViewer.tsx +4 -9
  194. package/src/components/HoverPopup/HoverPopup.tsx +95 -19
  195. package/src/components/MemoryViewer/MemoryViewer.tsx +30 -17
  196. package/src/components/MemoryViewer/i18n/en.json +4 -3
  197. package/src/components/MemoryViewer/utils.ts +19 -12
  198. package/src/components/PDiskInfo/PDiskInfo.scss +15 -0
  199. package/src/components/PDiskInfo/PDiskInfo.tsx +51 -243
  200. package/src/components/PDiskInfo/PDiskLogSize.tsx +12 -8
  201. package/src/components/PDiskInfo/i18n/en.json +6 -3
  202. package/src/components/PDiskInfo/statuses.ts +16 -3
  203. package/src/components/Search/Search.tsx +5 -2
  204. package/src/components/StorageGroupInfo/StorageGroupInfo.tsx +8 -13
  205. package/src/components/VDisk/VDisk.tsx +3 -2
  206. package/src/components/VDiskInfo/VDiskInfo.scss +19 -3
  207. package/src/components/VDiskInfo/VDiskInfo.tsx +119 -341
  208. package/src/components/VDiskInfo/getVDiskDetails.tsx +24 -2
  209. package/src/components/VDiskInfo/i18n/en.json +4 -13
  210. package/src/components/VDiskPopup/VDiskPopup.tsx +16 -24
  211. package/src/components/VDiskPopup/i18n/en.json +0 -2
  212. package/src/components/VDiskStatus/VDiskReplicationStatus.tsx +1 -1
  213. package/src/components/VDiskStatus/VDiskStatus.scss +4 -0
  214. package/src/components/VDiskStatus/VDiskStatus.tsx +13 -2
  215. package/src/components/VDiskStatus/statuses.ts +2 -2
  216. package/src/components/nodesColumns/columns.tsx +26 -12
  217. package/src/containers/Clusters/Clusters.scss +24 -6
  218. package/src/containers/Clusters/Clusters.tsx +74 -5
  219. package/src/containers/Clusters/columns.tsx +36 -6
  220. package/src/containers/Clusters/i18n/en.json +6 -0
  221. package/src/containers/Header/Header.tsx +8 -0
  222. package/src/containers/Header/HeaderLeftControls.tsx +3 -1
  223. package/src/containers/Header/PDiskLeftControls.tsx +41 -0
  224. package/src/containers/Header/VDiskLeftControls.tsx +40 -0
  225. package/src/containers/Header/breadcrumbs.tsx +4 -2
  226. package/src/containers/Header/i18n/en.json +4 -1
  227. package/src/containers/Nodes/NodesControls/NodesControls.tsx +1 -0
  228. package/src/containers/Nodes/PaginatedNodes/GroupedNodesComponent.tsx +5 -3
  229. package/src/containers/Nodes/PaginatedNodes/NodesComponent.tsx +4 -2
  230. package/src/containers/Nodes/useDebouncedSearch.ts +13 -0
  231. package/src/containers/PDiskPage/PDiskPage.scss +22 -11
  232. package/src/containers/PDiskPage/PDiskPage.tsx +88 -56
  233. package/src/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.tsx +3 -9
  234. package/src/containers/PDiskPage/PDiskStorageDetails.scss +51 -0
  235. package/src/containers/PDiskPage/PDiskStorageDetails.tsx +64 -0
  236. package/src/containers/PDiskPage/i18n/en.json +2 -0
  237. package/src/containers/StorageGroupPage/StorageGroupPage.scss +10 -0
  238. package/src/containers/StorageGroupPage/StorageGroupPage.tsx +37 -28
  239. package/src/containers/StorageGroupPage/i18n/en.json +0 -1
  240. package/src/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.tsx +5 -32
  241. package/src/containers/Tenant/Healthcheck/Healthcheck.scss +6 -1
  242. package/src/containers/Tenant/Healthcheck/components/HealthcheckIssue.tsx +18 -8
  243. package/src/containers/Tenant/TenantDrawerHealthcheck.tsx +14 -1
  244. package/src/containers/VDiskPage/VDiskPage.scss +21 -8
  245. package/src/containers/VDiskPage/VDiskPage.tsx +103 -64
  246. package/src/containers/VDiskPage/VDiskStorageDetails.scss +24 -93
  247. package/src/containers/VDiskPage/VDiskStorageDetails.tsx +50 -158
  248. package/src/containers/VDiskPage/i18n/en.json +3 -14
  249. package/src/store/reducers/cluster/parseFields.ts +1 -0
  250. package/src/store/reducers/clusters/clusters.ts +1 -0
  251. package/src/store/reducers/clusters/selectors.ts +4 -0
  252. package/src/store/reducers/clusters/types.ts +3 -0
  253. package/src/store/reducers/storage/prepareGroupsDisks.ts +2 -0
  254. package/src/store/reducers/storage/utils.ts +13 -3
  255. package/src/store/reducers/vdisk/types.ts +2 -1
  256. package/src/store/reducers/vdisk/utils.ts +4 -5
  257. package/src/types/api/meta.ts +1 -0
  258. package/src/types/api/nodesList.ts +3 -0
  259. package/src/utils/hooks/useDatabaseHealthcheckAvailable.ts +9 -0
  260. package/src/utils/memory.ts +16 -0
  261. package/src/utils/nodes.ts +3 -2
  262. package/src/utils/storageMetrics.ts +11 -0
  263. package/dist/components/VDiskInfo/getVDiskCapacityColumns.d.ts +0 -11
  264. package/dist/components/VDiskInfo/getVDiskCapacityColumns.js +0 -52
  265. package/dist/components/VDiskInfo/getVDiskCapacityColumns.js.map +0 -1
  266. package/src/components/VDiskInfo/getVDiskCapacityColumns.tsx +0 -83
@@ -2,6 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import { selectAllHealthcheckInfo, selectCheckStatus, } from '../../store/reducers/healthcheckInfo/healthcheckInfo';
4
4
  import { useTypedSelector } from '../../utils/hooks';
5
+ import { useDatabaseHealthcheckAvailable } from '../../utils/hooks/useDatabaseHealthcheckAvailable';
5
6
  import { Healthcheck } from './Healthcheck/Healthcheck';
6
7
  import { HealthcheckDrawer } from './Healthcheck/components/HealthcheckDrawer';
7
8
  import { getDatabaseHealthcheckAssistantTarget } from './Healthcheck/utils';
@@ -9,8 +10,9 @@ import { useCurrentSchema } from './TenantContext';
9
10
  import i18n from './i18n';
10
11
  import { useTenantQueryParams } from './useTenantQueryParams';
11
12
  export function TenantDrawerHealthcheck({ children, clusterName }) {
13
+ const healthcheckAvailable = useDatabaseHealthcheckAvailable();
12
14
  const { database } = useCurrentSchema();
13
- const { handleShowHealthcheckChange, showHealthcheck, handleIssuesFilterChange, handleHealthcheckViewChange, } = useTenantQueryParams();
15
+ const { handleShowHealthcheckChange, showHealthcheck, handleIssuesFilterChange, handleHealthcheckViewChange, issuesFilter, view, } = useTenantQueryParams();
14
16
  const healthcheckStatus = useTypedSelector((state) => selectCheckStatus(state, database || '', clusterName));
15
17
  const healthcheckData = useTypedSelector((state) => selectAllHealthcheckInfo(state, database || '', clusterName));
16
18
  const handleCloseDrawer = React.useCallback(() => {
@@ -18,6 +20,12 @@ export function TenantDrawerHealthcheck({ children, clusterName }) {
18
20
  handleIssuesFilterChange(undefined);
19
21
  handleHealthcheckViewChange(undefined);
20
22
  }, [handleShowHealthcheckChange, handleIssuesFilterChange, handleHealthcheckViewChange]);
23
+ React.useEffect(() => {
24
+ if (healthcheckAvailable === false &&
25
+ (showHealthcheck !== undefined || view !== undefined || issuesFilter !== undefined)) {
26
+ handleCloseDrawer();
27
+ }
28
+ }, [healthcheckAvailable, showHealthcheck, view, issuesFilter, handleCloseDrawer]);
21
29
  const renderDrawerContent = React.useCallback(() => {
22
30
  return _jsx(Healthcheck, { database: database, clusterName: clusterName });
23
31
  }, [database, clusterName]);
@@ -27,6 +35,6 @@ export function TenantDrawerHealthcheck({ children, clusterName }) {
27
35
  clusterName,
28
36
  scope: 'database',
29
37
  })
30
- : undefined, 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 }));
38
+ : undefined, isDrawerVisible: Boolean(healthcheckAvailable && 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 }));
31
39
  }
32
40
  //# 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,qCAAqC,EAAC,MAAM,qBAAqB,CAAC;AAC1E,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,MAAM,EACF,QAAQ;YACJ,CAAC,CAAC,qCAAqC,CAAC;gBAClC,QAAQ;gBACR,WAAW;gBACX,KAAK,EAAE,UAAU;aACpB,CAAC;YACJ,CAAC,CAAC,SAAS,EAEnB,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":"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"}
@@ -1,26 +1,30 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
- import { Flex, Icon, Label, Tab, TabList, TabProvider } from '@gravity-ui/uikit';
3
+ import { ArrowLeft, Wrench } from '@gravity-ui/icons';
4
+ import { Button, Flex, Icon, Tab, TabList, TabProvider, Text } from '@gravity-ui/uikit';
4
5
  import { skipToken } from '@reduxjs/toolkit/query';
5
6
  import { isNil } from 'lodash';
6
7
  import { Helmet } from 'react-helmet-async';
7
- import { EntityPageTitle } from '../../components/EntityPageTitle/EntityPageTitle';
8
+ import { useHistory } from 'react-router-dom';
9
+ import { AutoRefreshControl } from '../../components/AutoRefreshControl/AutoRefreshControl';
10
+ import { CopyableValue } from '../../components/CopyableValue/CopyableValue';
11
+ import { DiskTypeLabel } from '../../components/DiskStatus/DiskStatus';
8
12
  import { ResponseError } from '../../components/Errors/ResponseError';
9
13
  import { EvictVDiskButton, isAllVdiskParamsDefined, } from '../../components/EvictVDiskButton/EvictVDiskButton';
10
14
  import { InfoViewerSkeleton } from '../../components/InfoViewerSkeleton/InfoViewerSkeleton';
11
15
  import { InternalLink } from '../../components/InternalLink/InternalLink';
12
- import { PageMetaWithAutorefresh } from '../../components/PageMeta/PageMeta';
16
+ import { LinkWithIcon } from '../../components/LinkWithIcon/LinkWithIcon';
13
17
  import { VDiskInfo } from '../../components/VDiskInfo/VDiskInfo';
18
+ import { vDiskInfoKeyset } from '../../components/VDiskInfo/i18n';
19
+ import { VDiskDonorLabel, VDiskReplicationStatus, VDiskStateLabel, } from '../../components/VDiskStatus';
14
20
  import { useVDiskPagePath } from '../../routes';
15
21
  import { api } from '../../store/reducers/api';
16
- import { useNewStorageViewEnabled } from '../../store/reducers/capabilities/hooks';
17
22
  import { setHeaderBreadcrumbs } from '../../store/reducers/header/header';
18
23
  import { vDiskApi } from '../../store/reducers/vdisk/vdisk';
19
24
  import { cn } from '../../utils/cn';
25
+ import { EMPTY_DATA_PLACEHOLDER } from '../../utils/constants';
20
26
  import { parseVdiskId } from '../../utils/dataFormatters/dataFormatters';
21
- import { VDISK_LABEL_CONFIG } from '../../utils/disks/constants';
22
- import { formatPDiskType } from '../../utils/disks/getPDiskType';
23
- import { getDataSeverityColor } from '../../utils/disks/helpers';
27
+ import { createVDiskDeveloperUILink, useHasDeveloperUi } from '../../utils/developerUI/developerUI';
24
28
  import { useAutoRefreshInterval, useTypedDispatch } from '../../utils/hooks';
25
29
  import { useAppTitle } from '../App/AppTitleContext';
26
30
  import { PaginatedStorage } from '../Storage/PaginatedStorage';
@@ -33,10 +37,12 @@ const vDiskPageCn = cn('ydb-vdisk-page');
33
37
  export function VDiskPage() {
34
38
  var _a;
35
39
  const dispatch = useTypedDispatch();
40
+ const history = useHistory();
41
+ const showBackButton = history.length > 1;
36
42
  const getVDiskPagePath = useVDiskPagePath();
37
43
  const containerRef = React.useRef(null);
38
44
  const { nodeId, vDiskId: vDiskIdParam, database, vDiskTab, vDiskTabs } = useVDiskQueryParams();
39
- const newStorageViewEnabled = useNewStorageViewEnabled();
45
+ const hasDeveloperUi = useHasDeveloperUi();
40
46
  const [autoRefreshInterval] = useAutoRefreshInterval();
41
47
  const params = React.useMemo(() => {
42
48
  if (!isNil(vDiskIdParam)) {
@@ -57,7 +63,7 @@ export function VDiskPage() {
57
63
  }));
58
64
  }, [dispatch, database, (_a = vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.VDiskId) === null || _a === void 0 ? void 0 : _a.GroupID, vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.StringifiedId]);
59
65
  const loading = isFetching && vDiskData === undefined;
60
- const { NodeHost, NodeId, NodeType, NodeDC, PDiskId, PDiskType, Severity, VDiskId, StringifiedId, } = vDiskData || {};
66
+ const { NodeHost, NodeId, PDiskId, PDiskType, VDiskId, StringifiedId } = vDiskData || {};
61
67
  const resolvedVDiskId = VDiskId || (!loading && parseVdiskId(vDiskIdParam)) || undefined;
62
68
  const { GroupID } = resolvedVDiskId || {};
63
69
  const vDiskId = (vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.StringifiedId) || (loading ? undefined : vDiskIdParam);
@@ -73,27 +79,16 @@ export function VDiskPage() {
73
79
  return (_jsx(Helmet, { titleTemplate: `%s - ${vDiskPagePart} - ${pDiskPagePart} — ${nodePagePart} — ${appTitle}`, defaultTitle: `${vDiskPagePart} - ${pDiskPagePart} — ${nodePagePart} — ${appTitle}` }));
74
80
  };
75
81
  const renderPageMeta = () => {
76
- const hostItem = NodeHost ? `${vDiskPageKeyset('fqdn')}: ${NodeHost}` : undefined;
77
- const nodeIdItem = NodeId ? `${vDiskPageKeyset('node')}: ${NodeId}` : undefined;
78
- const pDiskIdItem = NodeId ? `${vDiskPageKeyset('pdisk')}: ${PDiskId}` : undefined;
79
- return (_jsx(PageMetaWithAutorefresh, { className: vDiskPageCn('meta'), loading: loading, items: [
80
- hostItem,
81
- nodeIdItem,
82
- NodeType,
83
- NodeDC,
84
- pDiskIdItem,
85
- formatPDiskType(PDiskType),
86
- ] }));
87
- };
88
- const renderTitleMeta = () => {
89
- if (!(vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.DonorMode)) {
82
+ if (!showBackButton) {
90
83
  return null;
91
84
  }
92
- const donorLabelConfig = VDISK_LABEL_CONFIG.donor;
93
- return (_jsx(Label, { theme: donorLabelConfig.theme, icon: donorLabelConfig.icon ? _jsx(Icon, { data: donorLabelConfig.icon }) : undefined, size: "m", children: vDiskPageKeyset('label_donor') }));
85
+ return (_jsxs(Flex, { className: vDiskPageCn('meta'), alignItems: "center", justifyContent: "space-between", gap: 1, children: [_jsxs(Button, { size: "m", view: "outlined", onClick: () => history.goBack(), children: [_jsx(Icon, { data: ArrowLeft, size: 16 }), vDiskPageKeyset('action_back')] }), _jsx(AutoRefreshControl, { className: vDiskPageCn('refresh-control') })] }));
86
+ };
87
+ const renderTitleMeta = () => {
88
+ return (_jsxs(Flex, { gap: 2, wrap: "wrap", alignItems: "center", children: [_jsx(VDiskStateLabel, { state: vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.VDiskState, size: "s" }), (vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.DonorMode) ? (_jsx(VDiskDonorLabel, { donorMode: true, size: "s" })) : (_jsx(VDiskReplicationStatus, { data: vDiskData || {}, size: "s" })), _jsx(DiskTypeLabel, { type: PDiskType, size: "s" })] }));
94
89
  };
95
90
  const renderPageTitle = () => {
96
- return (_jsx(Flex, { gap: 2, alignItems: "center", children: _jsx(EntityPageTitle, { className: vDiskPageCn('title'), entityName: vDiskPageKeyset('vdisk'), status: getDataSeverityColor(Severity), id: vDiskId, metaInfo: renderTitleMeta() }) }));
91
+ return (_jsxs(Flex, { className: vDiskPageCn('title'), alignItems: "flex-start", gap: 2, wrap: "nowrap", qa: "vdisk-header", children: [_jsxs(Flex, { direction: "column", gap: 1, className: vDiskPageCn('title-content'), children: [_jsxs(Flex, { gap: 3, alignItems: "center", wrap: "wrap", children: [_jsx(CopyableValue, { copyText: vDiskId, fieldName: vDiskPageKeyset('vdisk'), children: _jsxs(Text, { as: "h1", variant: "header-1", className: vDiskPageCn('heading'), children: [vDiskPageKeyset('vdisk'), ' ', _jsx(Text, { color: "hint", variant: "header-1", children: vDiskId || EMPTY_DATA_PLACEHOLDER })] }) }), renderTitleMeta()] }), _jsxs(Flex, { gap: 1, alignItems: "center", className: vDiskPageCn('pool'), children: [_jsxs(Text, { color: "secondary", children: [vDiskInfoKeyset('pool-name'), ":"] }), _jsx(CopyableValue, { copyText: vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.StoragePoolName, fieldName: vDiskInfoKeyset('pool-name'), children: _jsx(Text, { color: "secondary", className: vDiskPageCn('pool-name'), children: (vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.StoragePoolName) || EMPTY_DATA_PLACEHOLDER }) })] })] }), !showBackButton && (_jsx(AutoRefreshControl, { className: vDiskPageCn('refresh-control') }))] }));
97
92
  };
98
93
  const handleAfterEvictVDisk = React.useCallback(() => {
99
94
  dispatch(api.util.invalidateTags([
@@ -105,18 +100,23 @@ export function VDiskPage() {
105
100
  ]));
106
101
  }, [dispatch, vDiskId]);
107
102
  const renderControls = () => {
108
- if (!isAllVdiskParamsDefined(resolvedVDiskId)) {
103
+ const canEvict = isAllVdiskParamsDefined(resolvedVDiskId) && !(vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.DonorMode);
104
+ const developerUILink = hasDeveloperUi && !isNil(NodeId) && !isNil(PDiskId) && !isNil(vDiskSlotId)
105
+ ? createVDiskDeveloperUILink({
106
+ nodeId: NodeId,
107
+ pDiskId: PDiskId,
108
+ vDiskSlotId,
109
+ })
110
+ : undefined;
111
+ if (!canEvict && !developerUILink) {
109
112
  return null;
110
113
  }
111
- return (_jsx("div", { className: vDiskPageCn('controls'), "data-qa": "vdisk-controls", children: _jsx(EvictVDiskButton, { vDiskId: resolvedVDiskId, donorMode: vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.DonorMode, onSuccess: handleAfterEvictVDisk }) }));
114
+ return (_jsxs("div", { className: vDiskPageCn('controls'), "data-qa": "vdisk-controls", children: [canEvict && isAllVdiskParamsDefined(resolvedVDiskId) && (_jsx(EvictVDiskButton, { vDiskId: resolvedVDiskId, view: "action", onSuccess: handleAfterEvictVDisk })), developerUILink && (_jsx(LinkWithIcon, { title: vDiskPageKeyset('action_open-in-developer-ui'), url: developerUILink, icon: Wrench, hideEndIcon: true }))] }));
112
115
  };
113
116
  const renderInfo = () => {
114
- return _jsx(VDiskInfo, { data: vDiskData, className: vDiskPageCn('info'), wrap: true });
117
+ return _jsx(VDiskInfo, { data: vDiskData, className: vDiskPageCn('info') }, vDiskId);
115
118
  };
116
119
  const renderStorageDetails = () => {
117
- if (!newStorageViewEnabled) {
118
- return null;
119
- }
120
120
  return _jsx(VDiskStorageDetails, { data: vDiskData, className: vDiskPageCn('storage-details') });
121
121
  };
122
122
  const renderTabs = () => {
@@ -155,7 +155,7 @@ export function VDiskPage() {
155
155
  if (loading) {
156
156
  return _jsx(InfoViewerSkeleton, { rows: 9 });
157
157
  }
158
- return (_jsxs(React.Fragment, { children: [error ? _jsx(ResponseError, { error: error }) : null, renderInfo(), renderStorageDetails(), renderTabs(), renderTabsContent()] }));
158
+ return (_jsxs(React.Fragment, { children: [error ? _jsx(ResponseError, { error: error }) : null, renderStorageDetails(), renderInfo(), renderTabs(), renderTabsContent()] }));
159
159
  };
160
160
  return (_jsxs("div", { className: vDiskPageCn(null), ref: containerRef, children: [renderHelmet(), renderPageMeta(), renderPageTitle(), renderControls(), renderContent()] }));
161
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VDiskPage.js","sourceRoot":"","sources":["../../../src/containers/VDiskPage/VDiskPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VDiskPage.js","sourceRoot":"","sources":["../../../src/containers/VDiskPage/VDiskPage.tsx"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
- @use '../../styles//mixins.scss';
2
-
3
1
  .ydb-vdisk-page {
4
2
  --g-definition-list-item-gap: var(--g-spacing-3);
5
3
  position: relative;
6
4
 
7
5
  overflow: auto;
6
+ overflow-anchor: none;
8
7
 
9
8
  height: 100%;
10
- padding: 0 20px;
9
+ padding: 20px 20px 0;
11
10
 
12
11
  &__meta,
13
12
  &__title,
14
13
  &__controls,
14
+ &__storage-details,
15
15
  &__info,
16
16
  &__tabs {
17
17
  position: sticky;
@@ -20,22 +20,35 @@
20
20
  margin-bottom: 20px;
21
21
  }
22
22
 
23
- &__info {
24
- @include mixins.body-2-typography();
23
+ &__heading {
24
+ margin: 0;
25
+ overflow-wrap: anywhere;
26
+ }
27
+
28
+ &__pool-name {
29
+ min-width: 0;
30
+ overflow-wrap: anywhere;
31
+ }
32
+
33
+ &__title-content {
34
+ flex: 1;
35
+
36
+ min-width: 0;
25
37
  }
26
38
 
27
- &__meta {
28
- margin-top: 20px;
39
+ &__refresh-control {
40
+ flex-shrink: 0;
29
41
  }
30
42
 
31
43
  &__controls {
32
44
  display: flex;
45
+ flex-wrap: wrap;
33
46
  align-items: center;
34
47
  gap: var(--g-spacing-2);
35
48
  }
36
49
 
37
50
  &__storage-details {
38
- margin-bottom: var(--g-spacing-5);
51
+ margin-bottom: var(--g-spacing-4);
39
52
  }
40
53
 
41
54
  &__tablets-content {
@@ -1,42 +1,40 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button, Divider, Flex, Text } from '@gravity-ui/uikit';
2
+ import { Text } from '@gravity-ui/uikit';
3
+ import { isNil } from 'lodash';
3
4
  import { CellWithPopover } from '../../components/CellWithPopover/CellWithPopover';
4
- import { ClipboardButton } from '../../components/ClipboardButton/ClipboardButton';
5
+ import { CopyableValue } from '../../components/CopyableValue/CopyableValue';
6
+ import { InternalLinkButton } from '../../components/InternalLinkButton';
7
+ import { getVDiskLocationItems } from '../../components/VDiskInfo/getVDiskDetails';
5
8
  import { getPDiskPagePath } from '../../routes';
9
+ import { useNewStorageViewEnabled } from '../../store/reducers/capabilities/hooks';
6
10
  import { cn } from '../../utils/cn';
7
- import { BRAND_BUTTON_CLASS, EMPTY_DATA_PLACEHOLDER } from '../../utils/constants';
8
11
  import { useIsViewerUser } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
9
- import { formatMetricBytes, formatMetricPercent, getMetricBytesCommonSize, } from '../../utils/storageMetrics';
10
12
  import { vDiskPageKeyset } from './i18n';
11
13
  import './VDiskStorageDetails.scss';
12
14
  const b = cn('ydb-vdisk-storage-details');
13
- function MetricItem({ title, value }) {
14
- return (_jsxs("div", { className: b('metric'), children: [_jsx(Text, { variant: "subheader-2", className: b('value'), children: value }), _jsx(Text, { color: "secondary", className: b('label'), children: title })] }));
15
+ const LOCATION_IDS = ['datacenter', 'rack', 'fqdn', 'pdisk-path'];
16
+ function DetailItem({ item }) {
17
+ const copyText = item.copyText === undefined ? undefined : String(item.copyText);
18
+ return (_jsxs("div", { className: b('detail', { location: LOCATION_IDS.includes(item.id) }), "data-qa": `vdisk-location-${item.id}`, children: [_jsx(Text, { color: "secondary", children: item.name }), _jsx(CopyableValue, { copyText: copyText, fieldName: item.name, children: _jsx(CellWithPopover, { content: copyText, disabled: !copyText, placement: ['top', 'bottom'], fullWidth: true, wrapperClassName: b('value-popover'), className: b('value-popover-content', {
19
+ 'with-left-trim': item.id === 'pdisk-path',
20
+ }), children: _jsx("span", { tabIndex: copyText ? 0 : undefined, children: item.content }) }) })] }));
15
21
  }
16
- function DetailItem({ title, value }) {
17
- return (_jsxs("div", { className: b('detail'), children: [_jsx(TruncatedDetailValue, { value: value }), _jsx(Text, { color: "secondary", className: b('label'), children: title })] }));
18
- }
19
- function TruncatedDetailValue({ value }) {
20
- const normalizedValue = value === undefined || value === null || value === '' ? undefined : String(value);
21
- const displayValue = normalizedValue !== null && normalizedValue !== void 0 ? normalizedValue : EMPTY_DATA_PLACEHOLDER;
22
- return (_jsx(CellWithPopover, { content: normalizedValue, disabled: !normalizedValue, placement: ['top', 'bottom'], fullWidth: true, wrapperClassName: b('value-popover'), className: b('value-popover-content'), children: _jsx(Text, { variant: "subheader-2", className: b('value'), children: displayValue }) }));
23
- }
24
- function CopyableDetailItem({ title, value }) {
25
- const normalizedValue = value === undefined || value === null || value === '' ? undefined : String(value);
26
- const displayValue = normalizedValue !== null && normalizedValue !== void 0 ? normalizedValue : EMPTY_DATA_PLACEHOLDER;
27
- return (_jsxs("div", { className: b('detail'), children: [_jsxs(Flex, { alignItems: "center", gap: "1", className: b('value-row', { copyable: true }), children: [_jsx(CellWithPopover, { content: normalizedValue, disabled: !normalizedValue, placement: ['top', 'bottom'], fullWidth: true, wrapperClassName: b('value-popover', { copyable: true }), className: b('value-popover-content', { copyable: true }), children: _jsx(Text, { variant: "subheader-2", className: b('value'), children: displayValue }) }), _jsx(ClipboardButton, { copyText: normalizedValue, withLabel: false, view: "flat-secondary", size: "s" })] }), _jsx(Text, { color: "secondary", className: b('label'), children: title })] }));
28
- }
29
- export function VDiskStorageDetails({ className, data }) {
22
+ export function VDiskStorageDetails({ className, data = {} }) {
30
23
  const isViewerUser = useIsViewerUser();
31
- const used = Number(data === null || data === void 0 ? void 0 : data.AllocatedSize);
32
- const total = Number(data === null || data === void 0 ? void 0 : data.SizeLimit);
33
- const usage = Number(data === null || data === void 0 ? void 0 : data.AllocatedPercent);
34
- const free = Number(data === null || data === void 0 ? void 0 : data.FreeSize);
35
- const metricsSize = getMetricBytesCommonSize([used, total, free]);
36
- const { NodeDC, NodeRack, NodeHost, NodeId, PDiskId } = data || {};
37
- const pDiskPath = isViewerUser && NodeId !== undefined && PDiskId !== undefined
38
- ? getPDiskPagePath(PDiskId, NodeId, undefined, { withBasename: true })
24
+ const newStorageViewEnabled = useNewStorageViewEnabled();
25
+ const pDiskPath = isViewerUser && !isNil(data.NodeId) && !isNil(data.PDiskId)
26
+ ? getPDiskPagePath(data.PDiskId, data.NodeId)
39
27
  : undefined;
40
- return (_jsxs("div", { className: b(null, className), children: [_jsx(Flex, { alignItems: "center", gap: "1", className: b('title'), children: _jsx(Text, { variant: "subheader-2", children: vDiskPageKeyset('title_storage-details') }) }), _jsxs("div", { className: b('cards'), children: [_jsxs("div", { className: b('card', { metrics: true }), children: [_jsx(MetricItem, { title: vDiskPageKeyset('field_storage-details-used'), value: formatMetricBytes(used, metricsSize) }), _jsx(MetricItem, { title: vDiskPageKeyset('field_storage-details-total'), value: formatMetricBytes(total, metricsSize) }), _jsx(MetricItem, { title: vDiskPageKeyset('field_storage-details-free'), value: formatMetricBytes(free, metricsSize) }), _jsx(Divider, { orientation: "vertical" }), _jsx(MetricItem, { title: vDiskPageKeyset('field_storage-details-usage'), value: formatMetricPercent(usage) })] }), _jsxs("div", { className: b('card', { details: true }), children: [_jsxs("div", { className: b('details'), children: [_jsx(DetailItem, { title: vDiskPageKeyset('field_datacenter'), value: NodeDC }), _jsx(CopyableDetailItem, { title: vDiskPageKeyset('field_rack'), value: NodeRack }), _jsx(CopyableDetailItem, { title: vDiskPageKeyset('field_node'), value: NodeHost }), _jsx(CopyableDetailItem, { title: vDiskPageKeyset('field_pdisk-id'), value: PDiskId })] }), pDiskPath ? (_jsx(Button, { href: pDiskPath, view: "action", size: "m", className: BRAND_BUTTON_CLASS, children: vDiskPageKeyset('action_go-to-pdisk') })) : null] })] })] }));
28
+ const items = getVDiskLocationItems(data, {
29
+ Host: data.NodeHost,
30
+ Rack: data.NodeRack,
31
+ DC: data.NodeDC,
32
+ }).filter(({ id }) => newStorageViewEnabled || (id !== 'rack' && id !== 'pdisk-path'));
33
+ return (_jsxs("div", { className: b(null, className), "data-qa": "vdisk-location", children: [_jsx("div", { className: b('card'), children: LOCATION_IDS.map((id) => {
34
+ const item = items.find((entry) => entry.id === id);
35
+ return item ? _jsx(DetailItem, { item: item }, id) : null;
36
+ }) }), _jsxs("div", { className: b('card', { ids: true }), children: [items
37
+ .filter(({ id }) => !LOCATION_IDS.includes(id))
38
+ .map((item) => (_jsx(DetailItem, { item: item }, item.id))), pDiskPath && (_jsx(InternalLinkButton, { href: pDiskPath, size: "s", view: "normal", children: vDiskPageKeyset('action_go-to-pdisk') }))] })] }));
41
39
  }
42
40
  //# sourceMappingURL=VDiskStorageDetails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VDiskStorageDetails.js","sourceRoot":"","sources":["../../../src/containers/VDiskPage/VDiskStorageDetails.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VDiskStorageDetails.js","sourceRoot":"","sources":["../../../src/containers/VDiskPage/VDiskStorageDetails.tsx"],"names":[],"mappings":"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"}
@@ -1,129 +1,60 @@
1
1
  .ydb-vdisk-storage-details {
2
- &__title {
3
- margin-bottom: var(--g-spacing-4);
4
- }
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ gap: var(--g-spacing-1);
5
5
 
6
- &__cards {
6
+ &__card {
7
7
  display: flex;
8
8
  flex-wrap: wrap;
9
- align-items: flex-start;
10
- gap: var(--g-spacing-1);
11
-
12
- width: fit-content;
13
- max-width: 100%;
14
- }
9
+ align-items: center;
10
+ gap: var(--g-spacing-5);
15
11
 
16
- &__card {
17
12
  min-width: 0;
18
- padding: var(--g-spacing-4) var(--g-spacing-5);
13
+ padding: var(--g-spacing-3) var(--g-spacing-5);
19
14
 
20
15
  border-radius: var(--g-border-radius-m) var(--g-border-radius-xs) var(--g-border-radius-xs)
21
16
  var(--g-border-radius-m);
22
17
  background-color: var(--g-color-base-generic);
23
18
 
24
- &_metrics {
25
- display: flex;
26
- flex: 0 0 auto;
27
- align-items: stretch;
28
- gap: var(--g-spacing-5);
29
-
30
- width: max-content;
31
- max-width: 100%;
32
- min-height: 74px;
33
- }
34
-
35
- &_details {
36
- display: flex;
37
- flex: 0 1 auto;
38
- flex-wrap: wrap;
39
- justify-content: flex-start;
40
- align-items: center;
41
- gap: var(--g-spacing-4);
42
-
43
- width: fit-content;
44
- max-width: 100%;
45
- min-height: 74px;
46
-
19
+ &_ids {
47
20
  border-radius: var(--g-border-radius-xs) var(--g-border-radius-m)
48
21
  var(--g-border-radius-m) var(--g-border-radius-xs);
49
22
  }
50
23
  }
51
24
 
52
- &__details {
53
- display: flex;
54
- flex: 0 1 auto;
55
- flex-wrap: wrap;
56
- align-items: stretch;
57
- gap: var(--g-spacing-4);
58
-
59
- min-width: 0;
60
- max-width: 100%;
61
- }
62
-
63
- &__metric,
64
25
  &__detail {
65
26
  display: flex;
66
27
  flex-direction: column;
67
- justify-content: center;
68
- align-items: flex-start;
69
- gap: var(--g-spacing-1);
28
+ gap: var(--g-spacing-half);
70
29
 
71
30
  min-width: 0;
72
- padding-right: var(--g-spacing-4);
73
- }
31
+ max-width: 250px;
74
32
 
75
- &__detail {
76
- flex: 0 1 auto;
77
-
78
- min-width: 100px;
79
- max-width: 200px;
80
- }
81
-
82
- &__value,
83
- &__label {
84
- display: block;
85
-
86
- white-space: nowrap;
87
- }
88
-
89
- &__value-row &__value {
90
- overflow: hidden;
91
-
92
- text-overflow: ellipsis;
93
- }
94
-
95
- &__value-row {
96
- flex-wrap: nowrap;
97
-
98
- width: 100%;
99
- min-width: 0;
100
- height: 20px;
101
-
102
- &_copyable {
103
- width: auto;
104
- max-width: 100%;
33
+ &_location {
34
+ min-width: 100px;
35
+ max-width: 200px;
105
36
  }
106
37
  }
107
38
 
108
39
  &__value-popover {
109
- flex: 1 1 auto;
40
+ flex: 0 1 auto;
110
41
 
111
42
  min-width: 0;
112
-
113
- &_copyable {
114
- flex: 0 1 auto;
115
-
116
- max-width: 100%;
117
- }
43
+ max-width: 100%;
118
44
  }
119
45
 
120
46
  &__value-popover-content {
121
- width: 100%;
47
+ width: auto;
122
48
  min-width: 0;
49
+ max-width: 100%;
50
+
51
+ &_with-left-trim {
52
+ text-align: end;
53
+ direction: rtl;
123
54
 
124
- &_copyable {
125
- width: auto;
126
- max-width: 100%;
55
+ > span {
56
+ unicode-bidi: plaintext;
57
+ }
127
58
  }
128
59
  }
129
60
  }
@@ -1,23 +1,14 @@
1
1
  {
2
- "fqdn": "FQDN",
3
2
  "node": "Node",
4
3
  "pdisk": "PDisk",
5
4
  "vdisk": "VDisk",
6
5
  "storage": "Storage",
7
6
  "tablets": "Tablets",
8
- "title_storage-details": "Storage details",
9
- "field_storage-details-used": "Used",
10
- "field_storage-details-total": "Total",
11
- "field_storage-details-free": "Free",
12
- "field_storage-details-usage": "Usage",
13
- "field_datacenter": "Datacenter",
14
- "field_rack": "Rack",
15
- "field_node": "Node",
16
- "field_pdisk-id": "PDisk ID",
7
+ "action_back": "Back",
17
8
  "action_go-to-pdisk": "Go to PDisk",
9
+ "action_open-in-developer-ui": "Open in Developer UI",
18
10
  "tablet-id": "Tablet ID",
19
11
  "channel-id": "Channel ID",
20
12
  "count": "Count",
21
- "size": "Size",
22
- "label_donor": "Donor"
13
+ "size": "Size"
23
14
  }
@@ -1 +1 @@
1
- export declare const vDiskPageKeyset: (key: "count" | "storage" | "size" | "tablets" | "node" | "fqdn" | "tablet-id" | "field_rack" | "field_datacenter" | "field_pdisk-id" | "action_go-to-pdisk" | "label_donor" | "vdisk" | "pdisk" | "field_node" | "title_storage-details" | "field_storage-details-used" | "field_storage-details-total" | "field_storage-details-free" | "field_storage-details-usage" | "channel-id", params?: import("@gravity-ui/i18n").Params) => string;
1
+ export declare const vDiskPageKeyset: (key: "count" | "storage" | "size" | "tablets" | "node" | "tablet-id" | "action_open-in-developer-ui" | "action_go-to-pdisk" | "action_back" | "vdisk" | "pdisk" | "channel-id", params?: import("@gravity-ui/i18n").Params) => string;
@@ -78,6 +78,7 @@ export function parseLoggingUrls(logging) {
78
78
  return undefined;
79
79
  }
80
80
  const settingsSchema = z.object({
81
+ unavailable: z.boolean().optional().catch(undefined),
81
82
  use_meta_proxy: z.boolean().optional(),
82
83
  cluster_domain: z.string().optional(),
83
84
  cluster_external_name: z.string().optional(),