Skip to content

Commit dee22b0

Browse files
committed
fix: use the same pattern for columns
1 parent a91474c commit dee22b0

File tree

3 files changed

+14
-45
lines changed

3 files changed

+14
-45
lines changed

src/containers/Nodes/Nodes.tsx

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

33
import type {Column} from '../../components/PaginatedTable';
4-
import {getPileNameColumn} from '../../components/nodesColumns/columns';
54
import {
65
NODES_COLUMNS_IDS,
76
isMonitoringUserNodesColumn,
8-
isSortableNodesColumn,
97
isViewerUserNodesColumn,
108
} from '../../components/nodesColumns/constants';
119
import type {NodesColumnId} from '../../components/nodesColumns/constants';
@@ -57,35 +55,9 @@ export function Nodes({
5755
const bridgeModeEnabled = useBridgeModeEnabled();
5856

5957
const columnsWithPile = React.useMemo(() => {
60-
if (!bridgeModeEnabled) {
61-
// Ensure PileName is not present when bridge mode is off
62-
return columns.filter((c) => c.name !== NODES_COLUMNS_IDS.PileName);
63-
}
64-
65-
const hasPile = columns.some((c) => c.name === NODES_COLUMNS_IDS.PileName);
66-
if (hasPile) {
67-
return columns;
68-
}
69-
70-
const pileColumn = getPileNameColumn<NodesPreparedEntity>();
71-
// Add sortable flag consistently with other columns using nodesColumns constants
72-
const enhancedPileColumn = {
73-
...pileColumn,
74-
sortable: isSortableNodesColumn(NODES_COLUMNS_IDS.PileName),
75-
} as (typeof columns)[number];
76-
77-
const rackIndex = columns.findIndex((c) => c.name === NODES_COLUMNS_IDS.Rack);
78-
const dcIndex = columns.findIndex((c) => c.name === NODES_COLUMNS_IDS.DC);
79-
let insertIndex = columns.length;
80-
if (rackIndex !== -1) {
81-
insertIndex = rackIndex;
82-
} else if (dcIndex !== -1) {
83-
insertIndex = dcIndex + 1;
84-
}
85-
86-
const next = columns.slice();
87-
next.splice(insertIndex, 0, enhancedPileColumn);
88-
return next;
58+
return bridgeModeEnabled
59+
? columns
60+
: columns.filter((c) => c.name !== NODES_COLUMNS_IDS.PileName);
8961
}, [bridgeModeEnabled, columns]);
9062

9163
const effectiveDefaultColumns = React.useMemo(() => {

src/containers/Nodes/columns/columns.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
getMemoryColumn,
77
getNodeIdColumn,
88
getNodeNameColumn,
9+
getPileNameColumn,
910
getPoolsColumn,
1011
getRAMColumn,
1112
getRackColumn,
@@ -24,7 +25,7 @@ export function getNodesColumns(params: GetNodesColumnsParams): Column<NodesPrep
2425
getHostColumn<NodesPreparedEntity>(params),
2526
getNodeNameColumn<NodesPreparedEntity>(),
2627
getDataCenterColumn<NodesPreparedEntity>(),
27-
// PileName will be added conditionally by callers based on capability
28+
getPileNameColumn<NodesPreparedEntity>(),
2829
getRackColumn<NodesPreparedEntity>(),
2930
getUptimeColumn<NodesPreparedEntity>(),
3031
getCpuColumn<NodesPreparedEntity>(),

src/containers/Versions/NodesTable/NodesTable.tsx

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
getRAMColumn,
1111
getUptimeColumn,
1212
} from '../../../components/nodesColumns/columns';
13+
import {NODES_COLUMNS_IDS} from '../../../components/nodesColumns/constants';
1314
import type {GetNodesColumnsParams} from '../../../components/nodesColumns/types';
1415
import {useBridgeModeEnabled} from '../../../store/reducers/capabilities/hooks';
1516
import type {NodesPreparedEntity} from '../../../store/reducers/nodes/types';
@@ -18,24 +19,16 @@ import {useAdditionalNodesProps} from '../../../utils/hooks/useAdditionalNodesPr
1819

1920
const VERSIONS_COLUMNS_WIDTH_LS_KEY = 'versionsTableColumnsWidth';
2021

21-
function getColumns(
22-
params: GetNodesColumnsParams,
23-
includePileName: boolean,
24-
): Column<NodesPreparedEntity>[] {
25-
const cols: Column<NodesPreparedEntity>[] = [
22+
function getColumns(params: GetNodesColumnsParams): Column<NodesPreparedEntity>[] {
23+
return [
2624
getNodeIdColumn<NodesPreparedEntity>(),
2725
getHostColumn<NodesPreparedEntity>(params),
28-
];
29-
if (includePileName) {
30-
cols.push(getPileNameColumn<NodesPreparedEntity>());
31-
}
32-
cols.push(
26+
getPileNameColumn<NodesPreparedEntity>(),
3327
getUptimeColumn<NodesPreparedEntity>(),
3428
getRAMColumn<NodesPreparedEntity>(),
3529
getCpuColumn<NodesPreparedEntity>(),
3630
getLoadAverageColumn<NodesPreparedEntity>(),
37-
);
38-
return cols;
31+
];
3932
}
4033

4134
interface NodesTableProps {
@@ -46,7 +39,10 @@ export const NodesTable = ({nodes}: NodesTableProps) => {
4639
const additionalNodesProps = useAdditionalNodesProps();
4740
const bridgeModeEnabled = useBridgeModeEnabled();
4841

49-
const columns = getColumns({getNodeRef: additionalNodesProps?.getNodeRef}, bridgeModeEnabled);
42+
const allColumns = getColumns({getNodeRef: additionalNodesProps?.getNodeRef});
43+
const columns = bridgeModeEnabled
44+
? allColumns
45+
: allColumns.filter((c) => c.name !== NODES_COLUMNS_IDS.PileName);
5046

5147
return (
5248
<ResizeableDataTable

0 commit comments

Comments
 (0)