Skip to content

Commit 8b82c78

Browse files
fix: add opacity to unavailable nodes
1 parent 1528d03 commit 8b82c78

File tree

7 files changed

+21
-3
lines changed

7 files changed

+21
-3
lines changed

src/containers/Nodes/Nodes.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,8 @@
3939
@include table-styles;
4040
@include table-sticky-styles;
4141
}
42+
43+
&__node_unavailable {
44+
opacity: 0.6;
45+
}
4246
}

src/containers/Nodes/Nodes.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121
USE_NODES_ENDPOINT_IN_DIAGNOSTICS_KEY,
2222
} from '../../utils/constants';
2323
import {useAutofetcher, useTypedSelector} from '../../utils/hooks';
24-
import {NodesUptimeFilterValues} from '../../utils/nodes';
24+
import {isUnavailableNode, NodesUptimeFilterValues} from '../../utils/nodes';
2525

2626
import {setHeader} from '../../store/reducers/header';
2727
import {
@@ -166,6 +166,7 @@ export const Nodes = ({tenantPath, className, additionalNodesInfo = {}}: NodesPr
166166
order: DataTable.ASCENDING,
167167
}}
168168
emptyDataMessage={i18n('empty.default')}
169+
rowClassName={(row) => b('node', {unavailable: isUnavailableNode(row)})}
169170
/>
170171
</div>
171172
</div>

src/containers/Storage/StorageNodes/StorageNodes.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,8 @@
3535
&__group-id {
3636
font-weight: 500;
3737
}
38+
39+
&__node_unavailable {
40+
opacity: 0.6;
41+
}
3842
}

src/containers/Storage/StorageNodes/StorageNodes.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import DataTable, {Column, Settings, SortOrder} from '@gravity-ui/react-data-tab
55
import {Popover, PopoverBehavior} from '@gravity-ui/uikit';
66

77
import {VisibleEntities} from '../../../store/reducers/storage';
8-
import {NodesUptimeFilterValues} from '../../../utils/nodes';
8+
import {isUnavailableNode, NodesUptimeFilterValues} from '../../../utils/nodes';
99

1010
import {EmptyFilter} from '../EmptyFilter/EmptyFilter';
1111
import {PDisk} from '../PDisk';
@@ -190,6 +190,7 @@ function StorageNodes({
190190
}}
191191
initialSortOrder={setSortOrder(visibleEntities)}
192192
emptyDataMessage={i18n('empty.default')}
193+
rowClassName={(row) => b('node', {unavailable: isUnavailableNode(row)})}
193194
/>
194195
) : null;
195196
}

src/store/reducers/storage.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@ export const getFlatListStorageNodes = createSelector([getStorageNodes], (storag
313313
}).length;
314314
return {
315315
NodeId: node.NodeId,
316+
SystemState: systemState.SystemState,
316317
FQDN: systemState.Host,
317318
DataCenter: systemState.DataCenter,
318319
Rack: systemState.Rack,

src/types/api/nodes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {TVDiskStateInfo} from './vdisk';
77
// source: https://github.com/ydb-platform/ydb/blob/main/ydb/core/viewer/protos/viewer.proto
88

99
export interface TNodesInfo {
10-
Overall: EFlag;
10+
Overall?: EFlag;
1111
Nodes?: TNodeInfo[];
1212

1313
/** uint64 */

src/utils/nodes.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import type {TSystemStateInfo} from '../types/api/nodes';
2+
import type {INodesPreparedEntity} from '../types/store/nodes';
3+
import {EFlag} from '../types/api/enums';
4+
15
export enum NodesUptimeFilterValues {
26
'All' = 'All',
37
'SmallUptime' = 'SmallUptime',
@@ -7,3 +11,6 @@ export const NodesUptimeFilterTitles = {
711
[NodesUptimeFilterValues.All]: 'All',
812
[NodesUptimeFilterValues.SmallUptime]: 'Uptime < 1h',
913
};
14+
15+
export const isUnavailableNode = (node: INodesPreparedEntity | TSystemStateInfo) =>
16+
!node.SystemState || node.SystemState === EFlag.Grey;

0 commit comments

Comments
 (0)