Skip to content

Commit 766968b

Browse files
committed
fix: selectNodesMap
1 parent 18b14dc commit 766968b

File tree

6 files changed

+16
-8
lines changed

6 files changed

+16
-8
lines changed

src/components/PDiskPopup/PDiskPopup.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {EMPTY_DATA_PLACEHOLDER} from '../../utils/constants';
1010
import {createPDiskDeveloperUILink} from '../../utils/developerUI/developerUI';
1111
import type {PreparedPDisk} from '../../utils/disks/types';
1212
import {useTypedSelector} from '../../utils/hooks';
13+
import {useDatabaseFromQuery} from '../../utils/hooks/useDatabaseFromQuery';
1314
import {useIsUserAllowedToMakeChanges} from '../../utils/hooks/useIsUserAllowedToMakeChanges';
1415
import {bytesToGB, isNumeric} from '../../utils/utils';
1516
import {InfoViewer} from '../InfoViewer';
@@ -109,8 +110,9 @@ interface PDiskPopupProps {
109110
}
110111

111112
export const PDiskPopup = ({data}: PDiskPopupProps) => {
113+
const database = useDatabaseFromQuery();
112114
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
113-
const nodesMap = useTypedSelector(selectNodesMap);
115+
const nodesMap = useTypedSelector((state) => selectNodesMap(state, database));
114116
const nodeData = valueIsDefined(data.NodeId) ? nodesMap?.get(data.NodeId) : undefined;
115117
const info = React.useMemo(
116118
() => preparePDiskData(data, nodeData, isUserAllowedToMakeChanges),

src/components/VDiskPopup/VDiskPopup.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ export const VDiskPopup = ({data}: VDiskPopupProps) => {
257257
[data, isFullData, isUserAllowedToMakeChanges, database],
258258
);
259259

260-
const nodesMap = useTypedSelector(selectNodesMap);
260+
const nodesMap = useTypedSelector((state) => selectNodesMap(state, database));
261261
const nodeData = valueIsDefined(data.NodeId) ? nodesMap?.get(data.NodeId) : undefined;
262262
const pdiskInfo = React.useMemo(
263263
() =>

src/containers/Storage/utils/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {valueIsDefined} from '../../../utils';
77
import type {PreparedVDisk} from '../../../utils/disks/types';
88
import {generateEvaluator} from '../../../utils/generateEvaluator';
99
import {useTypedSelector} from '../../../utils/hooks';
10+
import {useDatabaseFromQuery} from '../../../utils/hooks/useDatabaseFromQuery';
1011
import type {StorageViewContext} from '../types';
1112

1213
const defaultDegradationEvaluator = generateEvaluator(['success', 'warning', 'danger'], 1, 2);
@@ -91,7 +92,8 @@ function isErasureWithDifferentDC(erasure?: Erasure) {
9192
}
9293

9394
export function useVDisksWithDCMargins(vDisks: PreparedVDisk[] = [], erasure?: Erasure) {
94-
const nodesMap = useTypedSelector(selectNodesMap);
95+
const database = useDatabaseFromQuery();
96+
const nodesMap = useTypedSelector((state) => selectNodesMap(state, database));
9597

9698
return React.useMemo(() => {
9799
const disksWithMargins: number[] = [];

src/containers/Tenant/Diagnostics/Partitions/Partitions.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export const Partitions = ({path, database}: PartitionsProps) => {
5656
error: nodesError,
5757
} = nodesListApi.useGetNodesListQuery({database}, undefined);
5858
const nodesLoading = nodesIsFetching && nodesData === undefined;
59-
const nodeHostsMap = useTypedSelector(selectNodesMap);
59+
const nodeHostsMap = useTypedSelector((state) => selectNodesMap(state, database));
6060

6161
const [hiddenColumns, setHiddenColumns] = useSetting<string[]>(PARTITIONS_HIDDEN_COLUMNS_KEY);
6262

src/store/reducers/nodesList.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ export const nodesListApi = api.injectEndpoints({
2121
overrideExisting: 'throw',
2222
});
2323

24-
const selectNodesList = nodesListApi.endpoints.getNodesList.select(undefined);
24+
const createGetNodesListSelector = createSelector(
25+
(database?: string) => database,
26+
(database) => nodesListApi.endpoints.getNodesList.select({database}),
27+
);
2528

2629
export const selectNodesMap = createSelector(
27-
(state: RootState) => selectNodesList(state).data,
28-
(data) => prepareNodesMap(data),
30+
(state: RootState) => state,
31+
(_state: RootState, database?: string) => createGetNodesListSelector(database),
32+
(state, selectNodesList) => prepareNodesMap(selectNodesList(state).data),
2933
);

src/store/reducers/tablets.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ const selectGetTabletsInfo = createSelector(
4242

4343
export const selectTabletsWithFqdn = createSelector(
4444
(state: RootState, params: TabletsApiRequestParams) => selectGetTabletsInfo(state, params),
45-
(state: RootState) => selectNodesMap(state),
45+
(state: RootState, params: TabletsApiRequestParams) => selectNodesMap(state, params.database),
4646
(data, nodeHostsMap): (TTabletStateInfo & {fqdn?: string})[] => {
4747
if (!data?.TabletStateInfo) {
4848
return [];

0 commit comments

Comments
 (0)