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.
- package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.d.ts +3 -2
- package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.js +19 -4
- package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.js.map +1 -1
- package/dist/components/CopyableValue/CopyableValue.d.ts +10 -0
- package/dist/components/CopyableValue/CopyableValue.js +10 -0
- package/dist/components/CopyableValue/CopyableValue.js.map +1 -0
- package/dist/components/CopyableValue/CopyableValue.scss +16 -0
- package/dist/components/CopyableValue/i18n/en.json +3 -0
- package/dist/components/CopyableValue/i18n/index.d.ts +2 -0
- package/dist/components/CopyableValue/i18n/index.js +6 -0
- package/dist/components/CopyableValue/i18n/index.js.map +1 -0
- package/dist/components/CriticalActionDialog/CriticalActionDialog.d.ts +2 -1
- package/dist/components/CriticalActionDialog/CriticalActionDialog.js +2 -1
- package/dist/components/CriticalActionDialog/CriticalActionDialog.js.map +1 -1
- package/dist/components/DiskCapacityInfo/DiskCapacityInfo.d.ts +1 -21
- package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js +40 -126
- package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js.map +1 -1
- package/dist/components/DiskCapacityInfo/i18n/en.json +0 -1
- package/dist/components/DiskCapacityInfo/i18n/index.d.ts +1 -1
- package/dist/components/EntityStatus/EntityStatus.d.ts +18 -6
- package/dist/components/EntityStatus/EntityStatus.js +5 -1
- package/dist/components/EntityStatus/EntityStatus.js.map +1 -1
- package/dist/components/EntityStatus/EntityStatus.scss +5 -0
- package/dist/components/EvictVDiskButton/EvictVDiskButton.d.ts +5 -2
- package/dist/components/EvictVDiskButton/EvictVDiskButton.js +3 -2
- package/dist/components/EvictVDiskButton/EvictVDiskButton.js.map +1 -1
- package/dist/components/EvictVDiskButton/i18n/en.json +2 -2
- package/dist/components/FullNodeViewer/FullNodeViewer.js +4 -7
- package/dist/components/FullNodeViewer/FullNodeViewer.js.map +1 -1
- package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
- package/dist/components/HoverPopup/HoverPopup.d.ts +1 -0
- package/dist/components/HoverPopup/HoverPopup.js +87 -16
- package/dist/components/HoverPopup/HoverPopup.js.map +1 -1
- package/dist/components/MemoryViewer/MemoryViewer.d.ts +3 -1
- package/dist/components/MemoryViewer/MemoryViewer.js +25 -16
- package/dist/components/MemoryViewer/MemoryViewer.js.map +1 -1
- package/dist/components/MemoryViewer/i18n/en.json +4 -3
- package/dist/components/MemoryViewer/i18n/index.d.ts +1 -1
- package/dist/components/MemoryViewer/utils.d.ts +4 -2
- package/dist/components/MemoryViewer/utils.js +11 -11
- package/dist/components/MemoryViewer/utils.js.map +1 -1
- package/dist/components/PDiskInfo/PDiskInfo.d.ts +4 -9
- package/dist/components/PDiskInfo/PDiskInfo.js +32 -144
- package/dist/components/PDiskInfo/PDiskInfo.js.map +1 -1
- package/dist/components/PDiskInfo/PDiskInfo.scss +15 -0
- package/dist/components/PDiskInfo/PDiskLogSize.js +1 -1
- package/dist/components/PDiskInfo/PDiskLogSize.js.map +1 -1
- package/dist/components/PDiskInfo/i18n/en.json +6 -3
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/PDiskInfo/statuses.js +12 -3
- package/dist/components/PDiskInfo/statuses.js.map +1 -1
- package/dist/components/Search/Search.js +3 -1
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/StorageGroupInfo/StorageGroupInfo.js +4 -9
- package/dist/components/StorageGroupInfo/StorageGroupInfo.js.map +1 -1
- package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
- package/dist/components/TenantNameWrapper/i18n/index.d.ts +1 -1
- package/dist/components/VDisk/VDisk.js +2 -2
- package/dist/components/VDisk/VDisk.js.map +1 -1
- package/dist/components/VDiskInfo/VDiskInfo.d.ts +3 -7
- package/dist/components/VDiskInfo/VDiskInfo.js +57 -235
- package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
- package/dist/components/VDiskInfo/VDiskInfo.scss +19 -3
- package/dist/components/VDiskInfo/getVDiskDetails.d.ts +7 -1
- package/dist/components/VDiskInfo/getVDiskDetails.js +14 -1
- package/dist/components/VDiskInfo/getVDiskDetails.js.map +1 -1
- package/dist/components/VDiskInfo/i18n/en.json +4 -13
- package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/VDiskPopup/VDiskPopup.d.ts +2 -1
- package/dist/components/VDiskPopup/VDiskPopup.js +10 -26
- package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
- package/dist/components/VDiskPopup/i18n/en.json +0 -2
- package/dist/components/VDiskPopup/i18n/index.d.ts +1 -1
- package/dist/components/VDiskStatus/VDiskReplicationStatus.js +1 -1
- package/dist/components/VDiskStatus/VDiskReplicationStatus.js.map +1 -1
- package/dist/components/VDiskStatus/VDiskStatus.js +2 -2
- package/dist/components/VDiskStatus/VDiskStatus.js.map +1 -1
- package/dist/components/VDiskStatus/VDiskStatus.scss +4 -0
- package/dist/components/VDiskStatus/statuses.js +2 -2
- package/dist/components/VDiskStatus/statuses.js.map +1 -1
- package/dist/components/nodesColumns/columns.d.ts +1 -0
- package/dist/components/nodesColumns/columns.js +13 -6
- package/dist/components/nodesColumns/columns.js.map +1 -1
- package/dist/containers/Clusters/Clusters.js +35 -6
- package/dist/containers/Clusters/Clusters.js.map +1 -1
- package/dist/containers/Clusters/Clusters.scss +24 -6
- package/dist/containers/Clusters/columns.js +9 -4
- package/dist/containers/Clusters/columns.js.map +1 -1
- package/dist/containers/Clusters/i18n/en.json +6 -0
- package/dist/containers/Clusters/i18n/index.d.ts +1 -1
- package/dist/containers/Header/Header.js +8 -0
- package/dist/containers/Header/Header.js.map +1 -1
- package/dist/containers/Header/HeaderLeftControls.js +3 -1
- package/dist/containers/Header/HeaderLeftControls.js.map +1 -1
- package/dist/containers/Header/PDiskLeftControls.d.ts +1 -0
- package/dist/containers/Header/PDiskLeftControls.js +24 -0
- package/dist/containers/Header/PDiskLeftControls.js.map +1 -0
- package/dist/containers/Header/VDiskLeftControls.d.ts +1 -0
- package/dist/containers/Header/VDiskLeftControls.js +23 -0
- package/dist/containers/Header/VDiskLeftControls.js.map +1 -0
- package/dist/containers/Header/breadcrumbs.js +5 -2
- package/dist/containers/Header/breadcrumbs.js.map +1 -1
- package/dist/containers/Header/i18n/en.json +4 -1
- package/dist/containers/Header/i18n/index.d.ts +1 -1
- package/dist/containers/Nodes/NodesControls/NodesControls.js +1 -1
- package/dist/containers/Nodes/NodesControls/NodesControls.js.map +1 -1
- package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js +5 -3
- package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js.map +1 -1
- package/dist/containers/Nodes/PaginatedNodes/NodesComponent.js +4 -2
- package/dist/containers/Nodes/PaginatedNodes/NodesComponent.js.map +1 -1
- package/dist/containers/Nodes/useDebouncedSearch.d.ts +2 -0
- package/dist/containers/Nodes/useDebouncedSearch.js +11 -0
- package/dist/containers/Nodes/useDebouncedSearch.js.map +1 -0
- package/dist/containers/PDiskPage/PDiskPage.js +30 -31
- package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskPage.scss +22 -11
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js +3 -3
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskStorageDetails.d.ts +6 -0
- package/dist/containers/PDiskPage/PDiskStorageDetails.js +28 -0
- package/dist/containers/PDiskPage/PDiskStorageDetails.js.map +1 -0
- package/dist/containers/PDiskPage/PDiskStorageDetails.scss +51 -0
- package/dist/containers/PDiskPage/i18n/en.json +2 -0
- package/dist/containers/PDiskPage/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/constants.d.ts +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/useStorageQueryParams.d.ts +4 -4
- package/dist/containers/StorageGroupPage/StorageGroupPage.js +7 -5
- package/dist/containers/StorageGroupPage/StorageGroupPage.js.map +1 -1
- package/dist/containers/StorageGroupPage/StorageGroupPage.scss +10 -0
- package/dist/containers/StorageGroupPage/i18n/en.json +0 -1
- package/dist/containers/StorageGroupPage/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +5 -12
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/columns/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Healthcheck/Healthcheck.scss +6 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js +2 -2
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js.map +1 -1
- package/dist/containers/Tenant/TenantDrawerHealthcheck.js +10 -2
- package/dist/containers/Tenant/TenantDrawerHealthcheck.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.js +33 -33
- package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.scss +21 -8
- package/dist/containers/VDiskPage/VDiskStorageDetails.js +27 -29
- package/dist/containers/VDiskPage/VDiskStorageDetails.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskStorageDetails.scss +24 -93
- package/dist/containers/VDiskPage/i18n/en.json +3 -12
- package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
- package/dist/store/reducers/cluster/parseFields.js +1 -0
- package/dist/store/reducers/cluster/parseFields.js.map +1 -1
- package/dist/store/reducers/clusters/clusters.js +1 -0
- package/dist/store/reducers/clusters/clusters.js.map +1 -1
- package/dist/store/reducers/clusters/selectors.d.ts +1 -0
- package/dist/store/reducers/clusters/selectors.js +4 -1
- package/dist/store/reducers/clusters/selectors.js.map +1 -1
- package/dist/store/reducers/clusters/types.d.ts +2 -0
- package/dist/store/reducers/storage/prepareGroupsDisks.d.ts +1 -1
- package/dist/store/reducers/storage/prepareGroupsDisks.js +2 -1
- package/dist/store/reducers/storage/prepareGroupsDisks.js.map +1 -1
- package/dist/store/reducers/storage/utils.js +10 -3
- package/dist/store/reducers/storage/utils.js.map +1 -1
- package/dist/store/reducers/vdisk/types.d.ts +1 -1
- package/dist/store/reducers/vdisk/utils.js +5 -5
- package/dist/store/reducers/vdisk/utils.js.map +1 -1
- package/dist/types/api/meta.d.ts +1 -0
- package/dist/types/api/nodesList.d.ts +2 -0
- package/dist/utils/hooks/useDatabaseHealthcheckAvailable.d.ts +2 -0
- package/dist/utils/hooks/useDatabaseHealthcheckAvailable.js +6 -0
- package/dist/utils/hooks/useDatabaseHealthcheckAvailable.js.map +1 -0
- package/dist/utils/memory.d.ts +5 -0
- package/dist/utils/memory.js +9 -0
- package/dist/utils/memory.js.map +1 -0
- package/dist/utils/nodes.js +3 -3
- package/dist/utils/nodes.js.map +1 -1
- package/dist/utils/storageMetrics.d.ts +1 -0
- package/dist/utils/storageMetrics.js +8 -0
- package/dist/utils/storageMetrics.js.map +1 -1
- package/package.json +1 -1
- package/src/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.tsx +22 -3
- package/src/components/CopyableValue/CopyableValue.scss +16 -0
- package/src/components/CopyableValue/CopyableValue.tsx +40 -0
- package/src/components/CopyableValue/i18n/en.json +3 -0
- package/src/components/CopyableValue/i18n/index.ts +8 -0
- package/src/components/CriticalActionDialog/CriticalActionDialog.tsx +3 -0
- package/src/components/DiskCapacityInfo/DiskCapacityInfo.tsx +40 -185
- package/src/components/DiskCapacityInfo/i18n/en.json +0 -1
- package/src/components/EntityStatus/EntityStatus.scss +5 -0
- package/src/components/EntityStatus/EntityStatus.tsx +38 -5
- package/src/components/EvictVDiskButton/EvictVDiskButton.tsx +10 -2
- package/src/components/EvictVDiskButton/i18n/en.json +2 -2
- package/src/components/FullNodeViewer/FullNodeViewer.tsx +4 -9
- package/src/components/HoverPopup/HoverPopup.tsx +95 -19
- package/src/components/MemoryViewer/MemoryViewer.tsx +30 -17
- package/src/components/MemoryViewer/i18n/en.json +4 -3
- package/src/components/MemoryViewer/utils.ts +19 -12
- package/src/components/PDiskInfo/PDiskInfo.scss +15 -0
- package/src/components/PDiskInfo/PDiskInfo.tsx +51 -243
- package/src/components/PDiskInfo/PDiskLogSize.tsx +12 -8
- package/src/components/PDiskInfo/i18n/en.json +6 -3
- package/src/components/PDiskInfo/statuses.ts +16 -3
- package/src/components/Search/Search.tsx +5 -2
- package/src/components/StorageGroupInfo/StorageGroupInfo.tsx +8 -13
- package/src/components/VDisk/VDisk.tsx +3 -2
- package/src/components/VDiskInfo/VDiskInfo.scss +19 -3
- package/src/components/VDiskInfo/VDiskInfo.tsx +119 -341
- package/src/components/VDiskInfo/getVDiskDetails.tsx +24 -2
- package/src/components/VDiskInfo/i18n/en.json +4 -13
- package/src/components/VDiskPopup/VDiskPopup.tsx +16 -24
- package/src/components/VDiskPopup/i18n/en.json +0 -2
- package/src/components/VDiskStatus/VDiskReplicationStatus.tsx +1 -1
- package/src/components/VDiskStatus/VDiskStatus.scss +4 -0
- package/src/components/VDiskStatus/VDiskStatus.tsx +13 -2
- package/src/components/VDiskStatus/statuses.ts +2 -2
- package/src/components/nodesColumns/columns.tsx +26 -12
- package/src/containers/Clusters/Clusters.scss +24 -6
- package/src/containers/Clusters/Clusters.tsx +74 -5
- package/src/containers/Clusters/columns.tsx +36 -6
- package/src/containers/Clusters/i18n/en.json +6 -0
- package/src/containers/Header/Header.tsx +8 -0
- package/src/containers/Header/HeaderLeftControls.tsx +3 -1
- package/src/containers/Header/PDiskLeftControls.tsx +41 -0
- package/src/containers/Header/VDiskLeftControls.tsx +40 -0
- package/src/containers/Header/breadcrumbs.tsx +4 -2
- package/src/containers/Header/i18n/en.json +4 -1
- package/src/containers/Nodes/NodesControls/NodesControls.tsx +1 -0
- package/src/containers/Nodes/PaginatedNodes/GroupedNodesComponent.tsx +5 -3
- package/src/containers/Nodes/PaginatedNodes/NodesComponent.tsx +4 -2
- package/src/containers/Nodes/useDebouncedSearch.ts +13 -0
- package/src/containers/PDiskPage/PDiskPage.scss +22 -11
- package/src/containers/PDiskPage/PDiskPage.tsx +88 -56
- package/src/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.tsx +3 -9
- package/src/containers/PDiskPage/PDiskStorageDetails.scss +51 -0
- package/src/containers/PDiskPage/PDiskStorageDetails.tsx +64 -0
- package/src/containers/PDiskPage/i18n/en.json +2 -0
- package/src/containers/StorageGroupPage/StorageGroupPage.scss +10 -0
- package/src/containers/StorageGroupPage/StorageGroupPage.tsx +37 -28
- package/src/containers/StorageGroupPage/i18n/en.json +0 -1
- package/src/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.tsx +5 -32
- package/src/containers/Tenant/Healthcheck/Healthcheck.scss +6 -1
- package/src/containers/Tenant/Healthcheck/components/HealthcheckIssue.tsx +18 -8
- package/src/containers/Tenant/TenantDrawerHealthcheck.tsx +14 -1
- package/src/containers/VDiskPage/VDiskPage.scss +21 -8
- package/src/containers/VDiskPage/VDiskPage.tsx +103 -64
- package/src/containers/VDiskPage/VDiskStorageDetails.scss +24 -93
- package/src/containers/VDiskPage/VDiskStorageDetails.tsx +50 -158
- package/src/containers/VDiskPage/i18n/en.json +3 -14
- package/src/store/reducers/cluster/parseFields.ts +1 -0
- package/src/store/reducers/clusters/clusters.ts +1 -0
- package/src/store/reducers/clusters/selectors.ts +4 -0
- package/src/store/reducers/clusters/types.ts +3 -0
- package/src/store/reducers/storage/prepareGroupsDisks.ts +2 -0
- package/src/store/reducers/storage/utils.ts +13 -3
- package/src/store/reducers/vdisk/types.ts +2 -1
- package/src/store/reducers/vdisk/utils.ts +4 -5
- package/src/types/api/meta.ts +1 -0
- package/src/types/api/nodesList.ts +3 -0
- package/src/utils/hooks/useDatabaseHealthcheckAvailable.ts +9 -0
- package/src/utils/memory.ts +16 -0
- package/src/utils/nodes.ts +3 -2
- package/src/utils/storageMetrics.ts +11 -0
- package/dist/components/VDiskInfo/getVDiskCapacityColumns.d.ts +0 -11
- package/dist/components/VDiskInfo/getVDiskCapacityColumns.js +0 -52
- package/dist/components/VDiskInfo/getVDiskCapacityColumns.js.map +0 -1
- package/src/components/VDiskInfo/getVDiskCapacityColumns.tsx +0 -83
|
@@ -3,7 +3,8 @@ import type { ButtonProps, PopoverProps } from '@gravity-ui/uikit';
|
|
|
3
3
|
interface ButtonWithConfirmDialogProps<T, K> {
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
onConfirmAction: (isRetry?: boolean) => Promise<T>;
|
|
6
|
-
onConfirmActionSuccess?: (() => Promise<K>) |
|
|
6
|
+
onConfirmActionSuccess?: ((isDialogOpen: boolean) => Promise<K>) | ((isDialogOpen: boolean) => void);
|
|
7
|
+
onDialogOpen?: () => VoidFunction;
|
|
7
8
|
dialogHeader: string;
|
|
8
9
|
dialogText?: string;
|
|
9
10
|
dialogWarning?: string;
|
|
@@ -19,5 +20,5 @@ interface ButtonWithConfirmDialogProps<T, K> {
|
|
|
19
20
|
popoverPlacement?: PopoverProps['placement'];
|
|
20
21
|
popoverDisabled?: PopoverProps['disabled'];
|
|
21
22
|
}
|
|
22
|
-
export declare function ButtonWithConfirmDialog<T, K>({ children, onConfirmAction, onConfirmActionSuccess, dialogHeader, dialogText, dialogWarning, applyButtonText, retryButtonText, buttonDisabled, buttonView, buttonWidth, buttonClassName, withPopover, popoverContent, popoverPlacement, popoverDisabled, applyButtonView, }: ButtonWithConfirmDialogProps<T, K>): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export declare function ButtonWithConfirmDialog<T, K>({ children, onConfirmAction, onConfirmActionSuccess, onDialogOpen, dialogHeader, dialogText, dialogWarning, applyButtonText, retryButtonText, buttonDisabled, buttonView, buttonWidth, buttonClassName, withPopover, popoverContent, popoverPlacement, popoverDisabled, applyButtonView, }: ButtonWithConfirmDialogProps<T, K>): import("react/jsx-runtime").JSX.Element;
|
|
23
24
|
export {};
|
|
@@ -3,18 +3,27 @@ import React from 'react';
|
|
|
3
3
|
import { Button, Popover } from '@gravity-ui/uikit';
|
|
4
4
|
import { CriticalActionDialog } from '../CriticalActionDialog/CriticalActionDialog';
|
|
5
5
|
import { isErrorWithRetry } from '../CriticalActionDialog/utils';
|
|
6
|
-
export function ButtonWithConfirmDialog({ children, onConfirmAction, onConfirmActionSuccess, dialogHeader, dialogText, dialogWarning, applyButtonText, retryButtonText, buttonDisabled = false, buttonView = 'action', buttonWidth, buttonClassName, withPopover = false, popoverContent, popoverPlacement = 'right', popoverDisabled = true, applyButtonView, }) {
|
|
6
|
+
export function ButtonWithConfirmDialog({ children, onConfirmAction, onConfirmActionSuccess, onDialogOpen, dialogHeader, dialogText, dialogWarning, applyButtonText, retryButtonText, buttonDisabled = false, buttonView = 'action', buttonWidth, buttonClassName, withPopover = false, popoverContent, popoverPlacement = 'right', popoverDisabled = true, applyButtonView, }) {
|
|
7
7
|
const [isConfirmDialogVisible, setIsConfirmDialogVisible] = React.useState(false);
|
|
8
8
|
const [buttonLoading, setButtonLoading] = React.useState(false);
|
|
9
9
|
const [withRetry, setWithRetry] = React.useState(false);
|
|
10
|
+
const dialogInteraction = React.useRef();
|
|
11
|
+
const releaseDialog = React.useCallback(() => {
|
|
12
|
+
var _a;
|
|
13
|
+
const interaction = dialogInteraction.current;
|
|
14
|
+
dialogInteraction.current = undefined;
|
|
15
|
+
(_a = interaction === null || interaction === void 0 ? void 0 : interaction.release) === null || _a === void 0 ? void 0 : _a.call(interaction);
|
|
16
|
+
}, []);
|
|
17
|
+
React.useEffect(() => releaseDialog, [releaseDialog]);
|
|
10
18
|
const handleConfirmAction = async (isRetry) => {
|
|
11
19
|
setButtonLoading(true);
|
|
12
20
|
await onConfirmAction(isRetry);
|
|
13
21
|
};
|
|
14
22
|
const handleConfirmActionSuccess = async () => {
|
|
23
|
+
var _a, _b;
|
|
15
24
|
setWithRetry(false);
|
|
16
25
|
try {
|
|
17
|
-
await (onConfirmActionSuccess === null || onConfirmActionSuccess === void 0 ? void 0 : onConfirmActionSuccess());
|
|
26
|
+
await (onConfirmActionSuccess === null || onConfirmActionSuccess === void 0 ? void 0 : onConfirmActionSuccess((_b = (_a = dialogInteraction.current) === null || _a === void 0 ? void 0 : _a.open) !== null && _b !== void 0 ? _b : false));
|
|
18
27
|
}
|
|
19
28
|
finally {
|
|
20
29
|
setButtonLoading(false);
|
|
@@ -25,7 +34,10 @@ export function ButtonWithConfirmDialog({ children, onConfirmAction, onConfirmAc
|
|
|
25
34
|
setButtonLoading(false);
|
|
26
35
|
};
|
|
27
36
|
const renderButton = () => {
|
|
28
|
-
return (_jsx(Button, { onClick: () =>
|
|
37
|
+
return (_jsx(Button, { onClick: () => {
|
|
38
|
+
dialogInteraction.current = { open: true, release: onDialogOpen === null || onDialogOpen === void 0 ? void 0 : onDialogOpen() };
|
|
39
|
+
setIsConfirmDialogVisible(true);
|
|
40
|
+
}, view: buttonView, width: buttonWidth, disabled: buttonDisabled, loading: !buttonDisabled && buttonLoading, className: buttonClassName, children: children }));
|
|
29
41
|
};
|
|
30
42
|
// keep <span>: if button is disabled, popover won't open without this wrapper
|
|
31
43
|
const renderContent = () => {
|
|
@@ -35,7 +47,10 @@ export function ButtonWithConfirmDialog({ children, onConfirmAction, onConfirmAc
|
|
|
35
47
|
return renderButton();
|
|
36
48
|
};
|
|
37
49
|
return (_jsxs(React.Fragment, { children: [_jsx(CriticalActionDialog, { visible: isConfirmDialogVisible, header: dialogHeader, description: dialogText, warningText: dialogWarning, applyButtonText: applyButtonText, withRetry: withRetry, retryButtonText: retryButtonText, onConfirm: handleConfirmAction, applyButtonView: applyButtonView, onConfirmActionSuccess: handleConfirmActionSuccess, onConfirmActionError: handleConfirmActionError, onClose: () => {
|
|
50
|
+
if (dialogInteraction.current) {
|
|
51
|
+
dialogInteraction.current.open = false;
|
|
52
|
+
}
|
|
38
53
|
setIsConfirmDialogVisible(false);
|
|
39
|
-
} }), renderContent()] }));
|
|
54
|
+
}, onTransitionOutComplete: releaseDialog }), renderContent()] }));
|
|
40
55
|
}
|
|
41
56
|
//# sourceMappingURL=ButtonWithConfirmDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonWithConfirmDialog.js","sourceRoot":"","sources":["../../../src/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAC,oBAAoB,EAAC,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"ButtonWithConfirmDialog.js","sourceRoot":"","sources":["../../../src/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import './CopyableValue.scss';
|
|
3
|
+
interface CopyableValueProps {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
copyText?: string | null;
|
|
6
|
+
fieldName: string;
|
|
7
|
+
copyButtonLabel?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function CopyableValue({ children, copyText, fieldName, copyButtonLabel, }: CopyableValueProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ClipboardButton, Flex } from '@gravity-ui/uikit';
|
|
3
|
+
import { cn } from '../../utils/cn';
|
|
4
|
+
import i18n from './i18n';
|
|
5
|
+
import './CopyableValue.scss';
|
|
6
|
+
const b = cn('ydb-copyable-value');
|
|
7
|
+
export function CopyableValue({ children, copyText, fieldName, copyButtonLabel, }) {
|
|
8
|
+
return (_jsxs(Flex, { inline: true, alignItems: "center", className: b({ 'with-copy': Boolean(copyText) }), children: [children, copyText && (_jsx(ClipboardButton, { className: b('button'), text: copyText, size: "s", view: "flat-secondary", "aria-label": copyButtonLabel !== null && copyButtonLabel !== void 0 ? copyButtonLabel : i18n('action_copy-field', { field: fieldName }) }))] }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=CopyableValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyableValue.js","sourceRoot":"","sources":["../../../src/components/CopyableValue/CopyableValue.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,eAAe,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAElC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC;AASnC,MAAM,UAAU,aAAa,CAAC,EAC1B,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,GACE;IACjB,OAAO,CACH,MAAC,IAAI,IAAC,MAAM,QAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,CAAC,EAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAC,CAAC,aAC1E,QAAQ,EACR,QAAQ,IAAI,CACT,KAAC,eAAe,IACZ,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EACtB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAC,GAAG,EACR,IAAI,EAAC,gBAAgB,gBACT,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,CAAC,mBAAmB,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC,GAC9E,CACL,IACE,CACV,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { registerKeysets } from '../../../utils/i18n';
|
|
2
|
+
import en from './en.json';
|
|
3
|
+
// Shared copy controls for values in entity headers and detail lists.
|
|
4
|
+
const COMPONENT = 'ydb-copyable-value';
|
|
5
|
+
export default registerKeysets(COMPONENT, { en });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/CopyableValue/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,sEAAsE;AACtE,MAAM,SAAS,GAAG,oBAAoB,CAAC;AAEvC,eAAe,eAAe,CAAC,SAAS,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC"}
|
|
@@ -12,9 +12,10 @@ interface CriticalActionDialogProps<T> {
|
|
|
12
12
|
applyButtonView?: ButtonView;
|
|
13
13
|
withCheckBox?: boolean;
|
|
14
14
|
onClose: VoidFunction;
|
|
15
|
+
onTransitionOutComplete?: VoidFunction;
|
|
15
16
|
onConfirm: (isRetry?: boolean) => Promise<T>;
|
|
16
17
|
onConfirmActionSuccess: VoidFunction;
|
|
17
18
|
onConfirmActionError: (error: unknown) => void;
|
|
18
19
|
}
|
|
19
|
-
export declare function CriticalActionDialog<T>({ visible, header, description, warningText, withRetry, retryButtonText, applyButtonText, applyButtonView, withCheckBox, onClose, onConfirm, onConfirmActionSuccess, onConfirmActionError, }: CriticalActionDialogProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function CriticalActionDialog<T>({ visible, header, description, warningText, withRetry, retryButtonText, applyButtonText, applyButtonView, withCheckBox, onClose, onTransitionOutComplete, onConfirm, onConfirmActionSuccess, onConfirmActionError, }: CriticalActionDialogProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
20
21
|
export {};
|
|
@@ -25,7 +25,7 @@ const parseError = (error) => {
|
|
|
25
25
|
}
|
|
26
26
|
return criticalActionDialogKeyset('default-error');
|
|
27
27
|
};
|
|
28
|
-
export function CriticalActionDialog({ visible, header, description, warningText, withRetry, retryButtonText, applyButtonText = criticalActionDialogKeyset('button-confirm'), applyButtonView, withCheckBox, onClose, onConfirm, onConfirmActionSuccess, onConfirmActionError, }) {
|
|
28
|
+
export function CriticalActionDialog({ visible, header, description, warningText, withRetry, retryButtonText, applyButtonText = criticalActionDialogKeyset('button-confirm'), applyButtonView, withCheckBox, onClose, onTransitionOutComplete, onConfirm, onConfirmActionSuccess, onConfirmActionError, }) {
|
|
29
29
|
const [isLoading, setIsLoading] = React.useState(false);
|
|
30
30
|
const [error, setError] = React.useState();
|
|
31
31
|
const [checkBoxChecked, setCheckBoxChecked] = React.useState(false);
|
|
@@ -47,6 +47,7 @@ export function CriticalActionDialog({ visible, header, description, warningText
|
|
|
47
47
|
const handleTransitionExited = () => {
|
|
48
48
|
setError(undefined);
|
|
49
49
|
setCheckBoxChecked(false);
|
|
50
|
+
onTransitionOutComplete === null || onTransitionOutComplete === void 0 ? void 0 : onTransitionOutComplete();
|
|
50
51
|
};
|
|
51
52
|
const renderCheckBox = () => {
|
|
52
53
|
if (withCheckBox) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CriticalActionDialog.js","sourceRoot":"","sources":["../../../src/components/CriticalActionDialog/CriticalActionDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAC,YAAY,EAAC,MAAM,6CAA6C,CAAC;AAEzE,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAC,eAAe,EAAE,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAC,0BAA0B,EAAC,MAAM,QAAQ,CAAC;AAElD,OAAO,6BAA6B,CAAC;AAErC,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC;AAEpC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,EAAE;IAClC,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,yBAAyB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACjD,OAAO,KAAC,YAAY,IAAC,YAAY,QAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAI,CAAC;QAC3D,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,UAAU,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,OAAO,0BAA0B,CAAC,eAAe,CAAC,CAAC;AACvD,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"CriticalActionDialog.js","sourceRoot":"","sources":["../../../src/components/CriticalActionDialog/CriticalActionDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,10 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { PreparedStorageGroup } from '../../store/reducers/storage/types';
|
|
3
2
|
import type { DiskDetailItem } from '../../utils/disks/diskInfo/getDiskLocationItems';
|
|
4
3
|
import type { PreparedPDisk, PreparedVDisk } from '../../utils/disks/types';
|
|
5
|
-
import type { InfoViewerItem } from '../InfoViewer';
|
|
6
|
-
import type { YDBDefinitionListItem } from '../YDBDefinitionList/YDBDefinitionList';
|
|
7
|
-
export interface DiskCapacityInfoItem {
|
|
8
|
-
id: string;
|
|
9
|
-
title: string;
|
|
10
|
-
value: React.ReactNode;
|
|
11
|
-
note?: string;
|
|
12
|
-
}
|
|
13
|
-
export declare function getVDiskCapacityInfoItems(data: PreparedVDisk | undefined, { withRawUsage }: {
|
|
14
|
-
withRawUsage: boolean;
|
|
15
|
-
}): DiskCapacityInfoItem[];
|
|
16
|
-
export declare function getPDiskCapacityInfoItems(data: PreparedPDisk | undefined, { withUsage, withCapacityAlert, fixedDecimalPlaces, useWhiteboardSize, }: {
|
|
17
|
-
withUsage: boolean;
|
|
18
|
-
withCapacityAlert: boolean;
|
|
19
|
-
fixedDecimalPlaces?: number;
|
|
20
|
-
useWhiteboardSize?: boolean;
|
|
21
|
-
}): DiskCapacityInfoItem[];
|
|
22
4
|
export declare function getVDiskCapacityItems(data: PreparedVDisk, { capacityMetricsEnabled }: {
|
|
23
5
|
capacityMetricsEnabled: boolean;
|
|
24
6
|
}): DiskDetailItem[];
|
|
25
7
|
export declare function getPDiskCapacityItems(data: PreparedPDisk, { useWhiteboardSize }?: {
|
|
26
8
|
useWhiteboardSize?: boolean;
|
|
27
9
|
}): DiskDetailItem[];
|
|
28
|
-
export declare function getStorageGroupCapacityInfoItems(data: PreparedStorageGroup | undefined):
|
|
29
|
-
export declare function toDefinitionListItems(items: DiskCapacityInfoItem[]): YDBDefinitionListItem[];
|
|
30
|
-
export declare function toInfoViewerItems(items: DiskCapacityInfoItem[]): InfoViewerItem[];
|
|
10
|
+
export declare function getStorageGroupCapacityInfoItems(data: PreparedStorageGroup | undefined): DiskDetailItem[];
|
|
@@ -1,103 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { isCapacityAlert } from '../../types/api/enums';
|
|
4
|
-
import { getCapacityAlertTheme, normalizeCapacityAlert } from '../../utils/capacityAlerts';
|
|
2
|
+
import { normalizeCapacityAlert } from '../../utils/capacityAlerts';
|
|
5
3
|
import { EMPTY_DATA_PLACEHOLDER } from '../../utils/constants';
|
|
6
4
|
import { formatMetricCountPair, formatMetricPercent, formatNormalizedMetricPercent, formatStorageMetricPair, } from '../../utils/storageMetrics';
|
|
7
5
|
import { DiskCapacityAlertLabel } from '../DiskStatus/DiskStatus';
|
|
8
6
|
import { pDiskInfoKeyset } from '../PDiskInfo/i18n';
|
|
9
|
-
import { TitleWithHelpMark } from '../TitleWithHelpmark/TitleWithHelpmark';
|
|
10
7
|
import { vDiskInfoKeyset } from '../VDiskInfo/i18n';
|
|
11
8
|
import { CAPACITY_CONFIGURATION_HELP_TEXT, CAPACITY_METRICS_COLUMN_TITLES, CAPACITY_METRICS_HELP_TEXT, } from '../capacityMetricsColumns/constants';
|
|
12
9
|
import { formatCapacityUnitCount } from '../capacityMetricsColumns/formatters';
|
|
13
10
|
import i18n from './i18n';
|
|
14
|
-
function getCapacityAlertValue(value) {
|
|
15
|
-
var _a;
|
|
16
|
-
return (_a = normalizeCapacityAlert(value)) !== null && _a !== void 0 ? _a : EMPTY_DATA_PLACEHOLDER;
|
|
17
|
-
}
|
|
18
|
-
function getAlertAwareUsageValue(value, capacityAlertValue) {
|
|
19
|
-
if (value === EMPTY_DATA_PLACEHOLDER) {
|
|
20
|
-
return value;
|
|
21
|
-
}
|
|
22
|
-
const capacityAlert = normalizeCapacityAlert(capacityAlertValue);
|
|
23
|
-
const theme = isCapacityAlert(capacityAlert) ? getCapacityAlertTheme(capacityAlert) : 'normal';
|
|
24
|
-
return _jsx(Label, { theme: theme, children: value });
|
|
25
|
-
}
|
|
26
|
-
export function getVDiskCapacityInfoItems(data, { withRawUsage }) {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
const sizeData = (_b = (_a = data === null || data === void 0 ? void 0 : data.WhiteboardSize) !== null && _a !== void 0 ? _a : data === null || data === void 0 ? void 0 : data.DisplaySize) !== null && _b !== void 0 ? _b : data;
|
|
29
|
-
const items = [
|
|
30
|
-
{
|
|
31
|
-
id: 'size',
|
|
32
|
-
title: i18n('field_size'),
|
|
33
|
-
value: formatStorageMetricPair(sizeData === null || sizeData === void 0 ? void 0 : sizeData.AllocatedSize, sizeData === null || sizeData === void 0 ? void 0 : sizeData.SizeLimit),
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
id: 'vdisk-slot-usage',
|
|
37
|
-
title: CAPACITY_METRICS_COLUMN_TITLES.MaxVDiskSlotUsage,
|
|
38
|
-
value: getAlertAwareUsageValue(formatMetricPercent(data === null || data === void 0 ? void 0 : data.VDiskSlotUsage), data === null || data === void 0 ? void 0 : data.CapacityAlert),
|
|
39
|
-
note: CAPACITY_METRICS_HELP_TEXT.MaxVDiskSlotUsage,
|
|
40
|
-
},
|
|
41
|
-
];
|
|
42
|
-
if (withRawUsage) {
|
|
43
|
-
items.push({
|
|
44
|
-
id: 'vdisk-raw-usage',
|
|
45
|
-
title: CAPACITY_METRICS_COLUMN_TITLES.MaxVDiskRawUsage,
|
|
46
|
-
value: formatMetricPercent(data === null || data === void 0 ? void 0 : data.VDiskRawUsage),
|
|
47
|
-
note: CAPACITY_METRICS_HELP_TEXT.MaxVDiskRawUsage,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
items.push({
|
|
51
|
-
id: 'group-size-in-units',
|
|
52
|
-
title: i18n('field_group-size-in-units'),
|
|
53
|
-
value: formatCapacityUnitCount(data === null || data === void 0 ? void 0 : data.GroupSizeInUnits),
|
|
54
|
-
note: CAPACITY_CONFIGURATION_HELP_TEXT.GroupSizeInUnits,
|
|
55
|
-
}, {
|
|
56
|
-
id: 'capacity-alert',
|
|
57
|
-
title: CAPACITY_METRICS_COLUMN_TITLES.CapacityAlert,
|
|
58
|
-
value: getCapacityAlertValue(data === null || data === void 0 ? void 0 : data.CapacityAlert),
|
|
59
|
-
note: CAPACITY_METRICS_HELP_TEXT.CapacityAlert,
|
|
60
|
-
});
|
|
61
|
-
return items;
|
|
62
|
-
}
|
|
63
|
-
export function getPDiskCapacityInfoItems(data, { withUsage, withCapacityAlert, fixedDecimalPlaces, useWhiteboardSize = true, }) {
|
|
64
|
-
var _a;
|
|
65
|
-
const sizeData = useWhiteboardSize ? ((_a = data === null || data === void 0 ? void 0 : data.WhiteboardSize) !== null && _a !== void 0 ? _a : data) : data;
|
|
66
|
-
const items = [
|
|
67
|
-
{
|
|
68
|
-
id: 'space',
|
|
69
|
-
title: i18n('field_space'),
|
|
70
|
-
value: formatStorageMetricPair(sizeData === null || sizeData === void 0 ? void 0 : sizeData.AllocatedSize, sizeData === null || sizeData === void 0 ? void 0 : sizeData.TotalSize, fixedDecimalPlaces),
|
|
71
|
-
},
|
|
72
|
-
];
|
|
73
|
-
if (withUsage) {
|
|
74
|
-
items.push({
|
|
75
|
-
id: 'pdisk-usage',
|
|
76
|
-
title: CAPACITY_METRICS_COLUMN_TITLES.MaxPDiskUsage,
|
|
77
|
-
value: formatMetricPercent(data === null || data === void 0 ? void 0 : data.PDiskUsage, fixedDecimalPlaces),
|
|
78
|
-
note: CAPACITY_METRICS_HELP_TEXT.MaxPDiskUsage,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
items.push({
|
|
82
|
-
id: 'slots',
|
|
83
|
-
title: i18n('field_slots'),
|
|
84
|
-
value: formatMetricCountPair(data === null || data === void 0 ? void 0 : data.NumActiveSlots, data === null || data === void 0 ? void 0 : data.ExpectedSlotCount),
|
|
85
|
-
}, {
|
|
86
|
-
id: 'slot-size-in-units',
|
|
87
|
-
title: i18n('field_slot-size-in-units'),
|
|
88
|
-
value: formatCapacityUnitCount(data === null || data === void 0 ? void 0 : data.SlotSizeInUnits),
|
|
89
|
-
note: CAPACITY_CONFIGURATION_HELP_TEXT.SlotSizeInUnits,
|
|
90
|
-
});
|
|
91
|
-
if (withCapacityAlert) {
|
|
92
|
-
items.push({
|
|
93
|
-
id: 'capacity-alert',
|
|
94
|
-
title: CAPACITY_METRICS_COLUMN_TITLES.CapacityAlert,
|
|
95
|
-
value: getCapacityAlertValue(data === null || data === void 0 ? void 0 : data.PDiskCapacityAlert),
|
|
96
|
-
note: CAPACITY_METRICS_HELP_TEXT.CapacityAlert,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
return items;
|
|
100
|
-
}
|
|
101
11
|
export function getVDiskCapacityItems(data, { capacityMetricsEnabled }) {
|
|
102
12
|
var _a, _b;
|
|
103
13
|
const size = (_b = (_a = (capacityMetricsEnabled ? data.WhiteboardSize : undefined)) !== null && _a !== void 0 ? _a : data.DisplaySize) !== null && _b !== void 0 ? _b : data;
|
|
@@ -135,57 +45,61 @@ export function getVDiskCapacityItems(data, { capacityMetricsEnabled }) {
|
|
|
135
45
|
return items.filter(({ id }) => capacityMetricsEnabled || id === 'size');
|
|
136
46
|
}
|
|
137
47
|
export function getPDiskCapacityItems(data, { useWhiteboardSize = true } = {}) {
|
|
138
|
-
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
48
|
+
var _a;
|
|
49
|
+
const size = useWhiteboardSize ? ((_a = data.WhiteboardSize) !== null && _a !== void 0 ? _a : data) : data;
|
|
50
|
+
return [
|
|
51
|
+
{
|
|
52
|
+
id: 'slot-size-in-units',
|
|
53
|
+
name: i18n('field_slot-size-in-units'),
|
|
54
|
+
content: formatCapacityUnitCount(data.SlotSizeInUnits),
|
|
55
|
+
note: CAPACITY_CONFIGURATION_HELP_TEXT.SlotSizeInUnits,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: 'space',
|
|
59
|
+
name: i18n('field_space'),
|
|
60
|
+
content: formatStorageMetricPair(size.AllocatedSize, size.TotalSize, 2),
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 'capacity-alert',
|
|
64
|
+
name: CAPACITY_METRICS_COLUMN_TITLES.CapacityAlert,
|
|
65
|
+
content: _jsx(DiskCapacityAlertLabel, { value: data.PDiskCapacityAlert }),
|
|
66
|
+
note: CAPACITY_METRICS_HELP_TEXT.CapacityAlert,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 'pdisk-usage',
|
|
70
|
+
name: CAPACITY_METRICS_COLUMN_TITLES.MaxPDiskUsage,
|
|
71
|
+
content: formatMetricPercent(data.PDiskUsage, 2),
|
|
72
|
+
note: CAPACITY_METRICS_HELP_TEXT.MaxPDiskUsage,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: 'slots',
|
|
76
|
+
name: i18n('field_slots'),
|
|
77
|
+
content: formatMetricCountPair(data.NumActiveSlots, data.ExpectedSlotCount),
|
|
78
|
+
note: pDiskInfoKeyset('context_slots'),
|
|
79
|
+
},
|
|
80
|
+
];
|
|
158
81
|
}
|
|
159
82
|
export function getStorageGroupCapacityInfoItems(data) {
|
|
160
83
|
const capacityAlert = normalizeCapacityAlert(data === null || data === void 0 ? void 0 : data.CapacityAlert);
|
|
161
84
|
return [
|
|
162
85
|
{
|
|
163
86
|
id: 'capacity-alert',
|
|
164
|
-
|
|
165
|
-
|
|
87
|
+
name: CAPACITY_METRICS_COLUMN_TITLES.CapacityAlert,
|
|
88
|
+
content: capacityAlert ? (_jsx(DiskCapacityAlertLabel, { value: capacityAlert })) : (EMPTY_DATA_PLACEHOLDER),
|
|
166
89
|
note: CAPACITY_METRICS_HELP_TEXT.CapacityAlert,
|
|
167
90
|
},
|
|
168
91
|
{
|
|
169
92
|
id: 'vdisk-slot-usage',
|
|
170
|
-
|
|
171
|
-
|
|
93
|
+
name: CAPACITY_METRICS_COLUMN_TITLES.MaxVDiskSlotUsage,
|
|
94
|
+
content: formatNormalizedMetricPercent(data === null || data === void 0 ? void 0 : data.MaxVDiskSlotUsage),
|
|
172
95
|
note: CAPACITY_METRICS_HELP_TEXT.MaxVDiskSlotUsage,
|
|
173
96
|
},
|
|
174
97
|
{
|
|
175
98
|
id: 'vdisk-raw-usage',
|
|
176
|
-
|
|
177
|
-
|
|
99
|
+
name: CAPACITY_METRICS_COLUMN_TITLES.MaxVDiskRawUsage,
|
|
100
|
+
content: formatNormalizedMetricPercent(data === null || data === void 0 ? void 0 : data.MaxVDiskRawUsage),
|
|
178
101
|
note: CAPACITY_METRICS_HELP_TEXT.MaxVDiskRawUsage,
|
|
179
102
|
},
|
|
180
103
|
];
|
|
181
104
|
}
|
|
182
|
-
export function toDefinitionListItems(items) {
|
|
183
|
-
return items.map(({ title, value, note }) => ({ name: title, content: value, note }));
|
|
184
|
-
}
|
|
185
|
-
export function toInfoViewerItems(items) {
|
|
186
|
-
return items.map(({ title, value, note }) => ({
|
|
187
|
-
label: note ? _jsx(TitleWithHelpMark, { header: title, note: note }) : title,
|
|
188
|
-
value,
|
|
189
|
-
}));
|
|
190
|
-
}
|
|
191
105
|
//# sourceMappingURL=DiskCapacityInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiskCapacityInfo.js","sourceRoot":"","sources":["../../../src/components/DiskCapacityInfo/DiskCapacityInfo.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"DiskCapacityInfo.js","sourceRoot":"","sources":["../../../src/components/DiskCapacityInfo/DiskCapacityInfo.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (key: "field_group-size-in-units" | "
|
|
1
|
+
declare const _default: (key: "field_group-size-in-units" | "field_space" | "field_slots" | "field_slot-size-in-units", params?: import("@gravity-ui/i18n").Params) => string;
|
|
2
2
|
export default _default;
|
|
@@ -3,19 +3,31 @@ import type { LabelProps } from '@gravity-ui/uikit';
|
|
|
3
3
|
import { EFlag } from '../../types/api/enums';
|
|
4
4
|
import './EntityStatus.scss';
|
|
5
5
|
export declare const EFlagToLabelTheme: Record<EFlag, LabelProps['theme']>;
|
|
6
|
-
interface
|
|
6
|
+
interface EntityStatusLabelBaseProps {
|
|
7
7
|
status: EFlag;
|
|
8
|
+
className?: string;
|
|
9
|
+
size?: LabelProps['size'];
|
|
10
|
+
iconSize?: number;
|
|
11
|
+
qa?: string;
|
|
12
|
+
}
|
|
13
|
+
interface DefaultEntityStatusLabelProps {
|
|
14
|
+
view?: 'default';
|
|
8
15
|
note?: React.ReactNode;
|
|
9
16
|
children?: React.ReactNode;
|
|
10
|
-
className?: string;
|
|
11
17
|
endContent?: React.ReactNode;
|
|
12
18
|
withStatusName?: boolean;
|
|
13
|
-
size?: LabelProps['size'];
|
|
14
|
-
iconSize?: number;
|
|
15
19
|
onClick?: (event: React.MouseEvent<HTMLElement>) => void;
|
|
16
|
-
qa?: string;
|
|
17
20
|
}
|
|
18
|
-
|
|
21
|
+
interface CompactEntityStatusLabelProps {
|
|
22
|
+
view: 'compact';
|
|
23
|
+
note?: never;
|
|
24
|
+
children?: never;
|
|
25
|
+
endContent?: never;
|
|
26
|
+
withStatusName?: never;
|
|
27
|
+
onClick?: never;
|
|
28
|
+
}
|
|
29
|
+
type EntityStatusLabelProps = EntityStatusLabelBaseProps & (DefaultEntityStatusLabelProps | CompactEntityStatusLabelProps);
|
|
30
|
+
declare function EntityStatusLabel({ children, className, endContent, status, withStatusName, view, note, size, iconSize, onClick, qa, }: EntityStatusLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
19
31
|
interface EntityStatusProps {
|
|
20
32
|
children?: React.ReactNode;
|
|
21
33
|
className?: string;
|
|
@@ -35,7 +35,11 @@ const EFlagToStatusName = {
|
|
|
35
35
|
return i18n('title_blue');
|
|
36
36
|
},
|
|
37
37
|
};
|
|
38
|
-
function EntityStatusLabel({ children, className, endContent, status, withStatusName = true, note, size = 'm', iconSize = 14, onClick, qa, }) {
|
|
38
|
+
function EntityStatusLabel({ children, className, endContent, status, withStatusName = true, view = 'default', note, size = 'm', iconSize = 14, onClick, qa, }) {
|
|
39
|
+
if (view === 'compact') {
|
|
40
|
+
const statusName = EFlagToStatusName[status];
|
|
41
|
+
return (_jsx(ActionTooltip, { title: statusName, children: _jsx("span", { className: b('compact'), role: "img", "aria-label": statusName, children: _jsx(Label, { theme: status === EFlag.Blue ? 'info' : EFlagToLabelTheme[status], icon: _jsx(StatusIcon, { size: iconSize, status: status }), size: size, className: b(null, className), qa: qa }) }) }));
|
|
42
|
+
}
|
|
39
43
|
const theme = EFlagToLabelTheme[status];
|
|
40
44
|
const isClickable = Boolean(onClick);
|
|
41
45
|
return (_jsx(ActionTooltip, { title: EFlagToDescription[status], disabled: Boolean(note), children: _jsx(Label, { theme: theme, icon: _jsx(StatusIcon, { size: iconSize, status: status }), size: size, className: b({ critical: status === EFlag.Red, clickable: isClickable }, className), onClick: onClick, interactive: isClickable, qa: qa, children: _jsxs(Flex, { gap: "2", wrap: "nowrap", children: [children, withStatusName ? EFlagToStatusName[status] : null, endContent ? _jsx(Flex, { alignSelf: "center", children: endContent }) : null, note && _jsx(HelpMark, { className: b('note'), children: note })] }) }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityStatus.js","sourceRoot":"","sources":["../../../src/components/EntityStatus/EntityStatus.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAEvD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAE3C,OAAO,qBAAqB,CAAC;AAE7B,MAAM,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,iBAAiB,GAAuC;IACjE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ;IACrB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS;IACvB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS;IACxB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS;IACvB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ;IACxB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS;CAC5B,CAAC;AAEF,MAAM,iBAAiB,GAA0B;IAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"EntityStatus.js","sourceRoot":"","sources":["../../../src/components/EntityStatus/EntityStatus.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import type { ButtonProps } from '@gravity-ui/uikit';
|
|
1
2
|
import type { TVDiskID } from '../../types/api/vdisk';
|
|
2
3
|
interface EvictVDiskButtonProps {
|
|
3
4
|
vDiskId: Required<TVDiskID>;
|
|
4
5
|
donorMode?: boolean;
|
|
5
6
|
fullWidth?: boolean;
|
|
6
|
-
|
|
7
|
+
view?: ButtonProps['view'];
|
|
8
|
+
onSuccess?: (isDialogOpen: boolean) => void;
|
|
9
|
+
onDialogOpen?: () => VoidFunction;
|
|
7
10
|
}
|
|
8
11
|
export declare function isAllVdiskParamsDefined(vDiskId?: TVDiskID): vDiskId is Required<TVDiskID>;
|
|
9
|
-
export declare const EvictVDiskButton: ({ vDiskId, donorMode, fullWidth, onSuccess, }: EvictVDiskButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare const EvictVDiskButton: ({ vDiskId, donorMode, fullWidth, view, onSuccess, onDialogOpen, }: EvictVDiskButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
13
|
export {};
|
|
@@ -4,6 +4,7 @@ import { ArrowsOppositeToDots } from '@gravity-ui/icons';
|
|
|
4
4
|
import { Icon } from '@gravity-ui/uikit';
|
|
5
5
|
import { isNil } from 'lodash';
|
|
6
6
|
import { useDiskPagesAvailable, useTabletDevUiSecurePath, } from '../../store/reducers/capabilities/hooks';
|
|
7
|
+
import { BRAND_BUTTON_CLASS } from '../../utils/constants';
|
|
7
8
|
import { useIsUserAllowedToMakeChanges } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
|
|
8
9
|
import { ButtonWithConfirmDialog } from '../ButtonWithConfirmDialog/ButtonWithConfirmDialog';
|
|
9
10
|
import { evictVDiskButtonKeyset } from './i18n';
|
|
@@ -14,7 +15,7 @@ export function isAllVdiskParamsDefined(vDiskId) {
|
|
|
14
15
|
!isNil(vDiskId === null || vDiskId === void 0 ? void 0 : vDiskId.Domain) &&
|
|
15
16
|
!isNil(vDiskId === null || vDiskId === void 0 ? void 0 : vDiskId.VDisk));
|
|
16
17
|
}
|
|
17
|
-
export const EvictVDiskButton = ({ vDiskId, donorMode, fullWidth, onSuccess, }) => {
|
|
18
|
+
export const EvictVDiskButton = ({ vDiskId, donorMode, fullWidth, view = 'normal', onSuccess, onDialogOpen, }) => {
|
|
18
19
|
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
|
|
19
20
|
const newDiskApiAvailable = useDiskPagesAvailable();
|
|
20
21
|
const useSecurePath = useTabletDevUiSecurePath();
|
|
@@ -45,7 +46,7 @@ export const EvictVDiskButton = ({ vDiskId, donorMode, fullWidth, onSuccess, })
|
|
|
45
46
|
throw err;
|
|
46
47
|
}
|
|
47
48
|
}, [vDiskId, newDiskApiAvailable, useSecurePath]);
|
|
48
|
-
return (_jsxs(ButtonWithConfirmDialog, { onConfirmAction: handleEvictVDisk, onConfirmActionSuccess: onSuccess, buttonDisabled: !isUserAllowedToMakeChanges || donorMode, buttonView:
|
|
49
|
+
return (_jsxs(ButtonWithConfirmDialog, { onConfirmAction: handleEvictVDisk, onConfirmActionSuccess: onSuccess, onDialogOpen: onDialogOpen, buttonDisabled: !isUserAllowedToMakeChanges || donorMode, buttonView: view, buttonClassName: view === 'action' ? BRAND_BUTTON_CLASS : undefined, buttonWidth: fullWidth ? 'max' : undefined, dialogHeader: evictVDiskButtonKeyset('title_evict-dialog'), dialogText: evictVDiskButtonKeyset('confirm_evict'), dialogWarning: evictVDiskButtonKeyset('alert_evict'), applyButtonText: evictVDiskButtonKeyset('action_evict-short'), applyButtonView: "outlined-danger", retryButtonText: evictVDiskButtonKeyset('action_force-evict'), withPopover: true, popoverContent: donorMode
|
|
49
50
|
? evictVDiskButtonKeyset('alert_donor-mode-impossible')
|
|
50
51
|
: evictVDiskButtonKeyset('alert_not-allowed'), popoverDisabled: isUserAllowedToMakeChanges && !donorMode, children: [_jsx(Icon, { data: ArrowsOppositeToDots }), evictVDiskButtonKeyset('action_evict')] }));
|
|
51
52
|
};
|