Skip to content

Commit e056c7f

Browse files
committed
fix(storage): preserve node search fields with grouping
1 parent 14700dd commit e056c7f

1 file changed

Lines changed: 15 additions & 1 deletion

File tree

‎src/containers/Storage/PaginatedStorageNodes/GroupedStorageNodesComponent.tsx‎

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ import React from 'react';
33
import {ResponseError} from '../../../components/Errors/ResponseError';
44
import {PaginatedTableWithLayout} from '../../../components/PaginatedTable/PaginatedTableWithLayout';
55
import {TableColumnSetup} from '../../../components/TableColumnSetup/TableColumnSetup';
6+
import {NODES_COLUMNS_TO_DATA_FIELDS} from '../../../components/nodesColumns/constants';
67
import {storageApi} from '../../../store/reducers/storage/storage';
7-
import type {NodesGroupByField} from '../../../types/api/nodes';
8+
import type {NodesGroupByField, NodesRequiredField} from '../../../types/api/nodes';
89
import {useAutoRefreshInterval} from '../../../utils/hooks';
910
import {NodesUptimeFilterValues} from '../../../utils/nodes';
1011
import {renderPaginatedTableErrorMessage} from '../../../utils/renderPaginatedTableErrorMessage';
12+
import {getRequiredDataFields} from '../../../utils/tableUtils/getRequiredDataFields';
1113
import type {PaginatedStorageProps} from '../PaginatedStorage';
1214
import {PaginatedStorageNodesTable} from '../PaginatedStorageNodesTable/PaginatedStorageNodesTable';
1315
import {TableGroup} from '../TableGroup/TableGroup';
@@ -20,6 +22,8 @@ import {useStorageColumnsSettings} from '../utils';
2022
import {StorageNodesControls} from './StorageNodesControls';
2123
import {useStorageNodesColumnsToSelect} from './useStorageNodesColumnsToSelect';
2224

25+
const NODE_SEARCH_FIELDS_REQUIRED = new Set<NodesRequiredField>(['Host', 'NodeName']);
26+
2327
interface StorageNodeGroupProps {
2428
name: string;
2529
count: number;
@@ -108,6 +112,15 @@ export function GroupedStorageNodesComponent({
108112
columnsSettings,
109113
});
110114

115+
const searchFieldsRequired = React.useMemo(() => {
116+
const activeFieldsRequired = getRequiredDataFields(
117+
columnsToShow.map(({name}) => name),
118+
NODES_COLUMNS_TO_DATA_FIELDS,
119+
);
120+
121+
return activeFieldsRequired.filter((field) => NODE_SEARCH_FIELDS_REQUIRED.has(field));
122+
}, [columnsToShow]);
123+
111124
const {currentData, isFetching, error} = storageApi.useGetStorageNodesInfoQuery(
112125
{
113126
database,
@@ -116,6 +129,7 @@ export function GroupedStorageNodesComponent({
116129
node_id: nodeId,
117130
group_id: groupId,
118131
group: storageNodesGroupByParam,
132+
fieldsRequired: nodesSearchValue.trim() ? searchFieldsRequired : undefined,
119133
},
120134
{
121135
pollingInterval: autoRefreshInterval,

0 commit comments

Comments
 (0)