Skip to content

Commit f175070

Browse files
fix(PDisk): show node host name in popup
1 parent deaf519 commit f175070

File tree

5 files changed

+27
-15
lines changed

5 files changed

+27
-15
lines changed

src/containers/Storage/Disks/Disks.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ function VDiskItem({nodes, vDisk, highlightedVDisk, setHighlightedVDisk}: DisksI
9090
);
9191
}
9292

93-
function PDiskItem({vDisk, highlightedVDisk, setHighlightedVDisk}: DisksItemProps) {
93+
function PDiskItem({nodes, vDisk, highlightedVDisk, setHighlightedVDisk}: DisksItemProps) {
9494
const vDiskId = stringifyVdiskId(vDisk.VDiskId);
9595

9696
if (!vDisk.PDisk) {
@@ -102,6 +102,7 @@ function PDiskItem({vDisk, highlightedVDisk, setHighlightedVDisk}: DisksItemProp
102102
className={b('pdisk-item')}
103103
progressBarClassName={b('pdisk-progress-bar')}
104104
data={vDisk.PDisk}
105+
nodes={nodes}
105106
showPopup={highlightedVDisk === vDiskId}
106107
onShowPopup={() => setHighlightedVDisk(vDiskId)}
107108
onHidePopup={() => setHighlightedVDisk(undefined)}

src/containers/Storage/PDisk/PDisk.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {VDiskWithDonorsStack} from '../../../components/VDisk/VDiskWithDonorsSta
77
import routes, {createHref, getPDiskPagePath} from '../../../routes';
88
import {useDiskPagesAvailable} from '../../../store/reducers/capabilities/hooks';
99
import type {TVDiskStateInfo} from '../../../types/api/vdisk';
10+
import type {NodesMap} from '../../../types/store/nodesList';
1011
import {valueIsDefined} from '../../../utils';
1112
import {cn} from '../../../utils/cn';
1213
import {stringifyVdiskId} from '../../../utils/dataFormatters/dataFormatters';
@@ -20,6 +21,7 @@ const b = cn('pdisk-storage');
2021
interface PDiskProps {
2122
data?: PreparedPDisk;
2223
vDisks?: TVDiskStateInfo[];
24+
nodes?: NodesMap;
2325
showPopup?: boolean;
2426
onShowPopup?: VoidFunction;
2527
onHidePopup?: VoidFunction;
@@ -30,6 +32,7 @@ interface PDiskProps {
3032
export const PDisk = ({
3133
data = {},
3234
vDisks,
35+
nodes,
3336
showPopup,
3437
onShowPopup,
3538
onHidePopup,
@@ -113,7 +116,12 @@ export const PDisk = ({
113116
<div className={b('media-type')}>{data.Type}</div>
114117
</InternalLink>
115118
</div>
116-
<PDiskPopup data={data} anchorRef={anchor} open={isPopupVisible || showPopup} />
119+
<PDiskPopup
120+
data={data}
121+
nodes={nodes}
122+
anchorRef={anchor}
123+
open={isPopupVisible || showPopup}
124+
/>
117125
</React.Fragment>
118126
);
119127
};

src/containers/Storage/StorageNodes/columns/columns.tsx

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import DataTable from '@gravity-ui/react-data-table';
22

33
import {NodeHostWrapper} from '../../../../components/NodeHostWrapper/NodeHostWrapper';
4-
import type {AdditionalNodesProps} from '../../../../types/additionalProps';
54
import {cn} from '../../../../utils/cn';
65
import {EMPTY_DATA_PLACEHOLDER} from '../../../../utils/constants';
76
import {isSortableNodesProperty} from '../../../../utils/nodes';
@@ -14,10 +13,11 @@ import './StorageNodesColumns.scss';
1413

1514
const b = cn('ydb-storage-nodes-columns');
1615

17-
const getStorageNodesColumns = (
18-
additionalNodesProps: AdditionalNodesProps | undefined,
19-
database?: string,
20-
) => {
16+
const getStorageNodesColumns = ({
17+
additionalNodesProps,
18+
database,
19+
nodes,
20+
}: GetStorageNodesColumnsParams) => {
2121
const getNodeRef = additionalNodesProps?.getNodeRef;
2222

2323
const columns: StorageNodesColumn[] = [
@@ -81,7 +81,7 @@ const getStorageNodesColumns = (
8181

8282
return (
8383
<div className={b('pdisks-item')} key={pDisk.PDiskId}>
84-
<PDisk data={pDisk} vDisks={vDisks} />
84+
<PDisk data={pDisk} vDisks={vDisks} nodes={nodes} />
8585
</div>
8686
);
8787
})}
@@ -98,11 +98,8 @@ const getStorageNodesColumns = (
9898
return columns;
9999
};
100100

101-
export const getPreparedStorageNodesColumns = ({
102-
additionalNodesProps,
103-
database,
104-
}: GetStorageNodesColumnsParams) => {
105-
const rawColumns = getStorageNodesColumns(additionalNodesProps, database);
101+
export const getPreparedStorageNodesColumns = (params: GetStorageNodesColumnsParams) => {
102+
const rawColumns = getStorageNodesColumns(params);
106103

107104
const sortableColumns = rawColumns.map((column) => ({
108105
...column,

src/containers/Storage/StorageNodes/columns/hooks.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import React from 'react';
22

3+
import {selectNodesMap} from '../../../../store/reducers/nodesList';
34
import {VISIBLE_ENTITIES} from '../../../../store/reducers/storage/constants';
5+
import {useTypedSelector} from '../../../../utils/hooks';
46
import {useSelectedColumns} from '../../../../utils/hooks/useSelectedColumns';
57

68
import {getPreparedStorageNodesColumns} from './columns';
@@ -18,9 +20,11 @@ export function useStorageNodesSelectedColumns({
1820
database,
1921
additionalNodesProps,
2022
}: GetStorageNodesColumnsParams) {
23+
const nodes = useTypedSelector(selectNodesMap);
24+
2125
const columns = React.useMemo(() => {
22-
return getPreparedStorageNodesColumns({database, additionalNodesProps});
23-
}, [database, additionalNodesProps]);
26+
return getPreparedStorageNodesColumns({database, additionalNodesProps, nodes});
27+
}, [database, additionalNodesProps, nodes]);
2428

2529
const requiredColumns = React.useMemo(() => {
2630
if (visibleEntities === VISIBLE_ENTITIES.missing) {

src/containers/Storage/StorageNodes/columns/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import type {Column as DataTableColumn} from '@gravity-ui/react-data-table';
33
import type {Column as PaginatedTableColumn} from '../../../../components/PaginatedTable';
44
import type {PreparedStorageNode, VisibleEntities} from '../../../../store/reducers/storage/types';
55
import type {AdditionalNodesProps} from '../../../../types/additionalProps';
6+
import type {NodesMap} from '../../../../types/store/nodesList';
67

78
export type StorageNodesColumn = PaginatedTableColumn<PreparedStorageNode> &
89
DataTableColumn<PreparedStorageNode>;
@@ -11,4 +12,5 @@ export interface GetStorageNodesColumnsParams {
1112
additionalNodesProps: AdditionalNodesProps | undefined;
1213
visibleEntities?: VisibleEntities;
1314
database?: string;
15+
nodes?: NodesMap;
1416
}

0 commit comments

Comments
 (0)