Skip to content

Commit 8dd9921

Browse files
Fix bugs
1 parent 68ae8dd commit 8dd9921

File tree

11 files changed

+32
-32
lines changed

11 files changed

+32
-32
lines changed

src/components/NetworkTable/NetworkTable.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@ import {
1111

1212
type NetworkWrapperProps = Pick<
1313
NodesProps,
14-
'path' | 'scrollContainerRef' | 'database' | 'databaseFullPath' | 'nodeId'
14+
'path' | 'scrollContainerRef' | 'database' | 'databaseFullPath'
1515
>;
1616

1717
export function NetworkTable({
1818
database,
1919
databaseFullPath,
2020
path,
2121
scrollContainerRef,
22-
nodeId,
2322
}: NetworkWrapperProps) {
2423
return (
2524
<Nodes
@@ -33,7 +32,6 @@ export function NetworkTable({
3332
requiredColumnsIds={NETWORK_REQUIRED_NODES_COLUMNS}
3433
selectedColumnsKey={NETWORK_NODES_TABLE_SELECTED_COLUMNS_KEY}
3534
groupByParams={NETWORK_NODES_GROUP_BY_PARAMS}
36-
nodeId={nodeId}
3735
/>
3836
);
3937
}

src/components/nodesColumns/columns.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ export function getPeerSkewColumn<T extends {ClockSkewUs?: string | number}>():
564564
resizeMinWidth: 90,
565565
render: ({row}) =>
566566
isNumeric(row.ClockSkewUs)
567-
? formatToMs(parseUsToMs(row.ClockSkewUs))
567+
? formatToMs(parseUsToMs(row.ClockSkewUs, 2))
568568
: EMPTY_DATA_PLACEHOLDER,
569569
};
570570
}
@@ -578,7 +578,7 @@ export function getPeerPingColumn<T extends {PingTimeUs?: string | number}>(): C
578578
resizeMinWidth: 90,
579579
render: ({row}) =>
580580
isNumeric(row.PingTimeUs)
581-
? formatToMs(parseUsToMs(row.PingTimeUs))
581+
? formatToMs(parseUsToMs(row.PingTimeUs, 2))
582582
: EMPTY_DATA_PLACEHOLDER,
583583
};
584584
}

src/containers/Node/Node.tsx

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import React from 'react';
33
import {Tab, TabList, TabProvider} from '@gravity-ui/uikit';
44
import {skipToken} from '@reduxjs/toolkit/query';
55
import {Helmet} from 'react-helmet-async';
6-
import {useRouteMatch} from 'react-router-dom';
6+
import {useHistory, useRouteMatch} from 'react-router-dom';
77
import {useQueryParams} from 'use-query-params';
88

99
import {EntityPageTitle} from '../../components/EntityPageTitle/EntityPageTitle';
@@ -50,6 +50,7 @@ export function Node() {
5050
const configsAvailable = isViewerUser && hasConfigs;
5151

5252
const dispatch = useTypedDispatch();
53+
const history = useHistory();
5354

5455
const match = useRouteMatch<{id: string; activeTab: string}>(routes.node);
5556

@@ -71,6 +72,7 @@ export function Node() {
7172

7273
const capabilitiesLoaded = useCapabilitiesLoaded();
7374
const isDiskPagesAvailable = useDiskPagesAvailable();
75+
const isPeersHandlerAvailable = useViewerPeersHandlerAvailable();
7476

7577
const pageLoading = isLoading || !capabilitiesLoaded;
7678

@@ -92,13 +94,23 @@ export function Node() {
9294
if (!threadsQuantity) {
9395
skippedTabs.push('threads');
9496
}
97+
if (!isPeersHandlerAvailable) {
98+
skippedTabs.push('network');
99+
}
95100
const actualNodeTabs = NODE_TABS.filter((el) => !skippedTabs.includes(el.id));
96101

97102
const actualActiveTab =
98103
actualNodeTabs.find(({id}) => id === activeTabId) ?? actualNodeTabs[0];
99104

100105
return {activeTab: actualActiveTab, nodeTabs: actualNodeTabs};
101-
}, [isStorageNode, isDiskPagesAvailable, activeTabId, threadsQuantity, configsAvailable]);
106+
}, [
107+
isStorageNode,
108+
isDiskPagesAvailable,
109+
isPeersHandlerAvailable,
110+
activeTabId,
111+
threadsQuantity,
112+
configsAvailable,
113+
]);
102114

103115
const database = tenantNameFromQuery?.toString();
104116

@@ -118,6 +130,18 @@ export function Node() {
118130
}
119131
}, [dispatch, database, nodeId, isLoading, isStorageNode, databaseName]);
120132

133+
React.useEffect(() => {
134+
if (!nodeId || !activeTab) {
135+
return;
136+
}
137+
138+
if (activeTab.id !== activeTabId) {
139+
const path = getDefaultNodePath({id: nodeId, activeTab: activeTab.id}, {database});
140+
141+
history.replace(path);
142+
}
143+
}, [nodeId, database, activeTab.id, activeTabId, history, activeTab]);
144+
121145
return (
122146
<div className={b(null)} ref={container}>
123147
{<NodePageHelmet node={node} activeTabTitle={activeTab.title} />}
@@ -216,8 +240,6 @@ function NodePageContent({
216240
tabs,
217241
parentContainer,
218242
}: NodePageContentProps) {
219-
const isPeersHandlerAvailable = useViewerPeersHandlerAvailable();
220-
221243
const renderTabs = () => {
222244
return (
223245
<div className={b('tabs')}>
@@ -286,10 +308,6 @@ function NodePageContent({
286308
}
287309

288310
case 'network': {
289-
if (!isPeersHandlerAvailable) {
290-
return i18n('alert_no-peers');
291-
}
292-
293311
return <NodeNetwork nodeId={nodeId} scrollContainerRef={parentContainer} />;
294312
}
295313

src/containers/Node/NodeNetwork/columns.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ function getPeerConnectTimeColumn<T extends {ConnectTime?: string}>(): Column<T>
2828
name: NODE_NETWORK_COLUMNS_IDS.ConnectTime,
2929
header: NODE_NETWORK_COLUMNS_TITLES.ConnectTime,
3030
align: DataTable.LEFT,
31-
width: 150,
31+
width: 160,
3232
resizeMinWidth: 120,
3333
render: ({row}) =>
3434
row.ConnectTime ? formatDateTime(row.ConnectTime) : EMPTY_DATA_PLACEHOLDER,

src/containers/Nodes/Nodes.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ export interface NodesProps {
3737
requiredColumnsIds?: NodesColumnId[];
3838
selectedColumnsKey?: string;
3939
groupByParams?: NodesGroupByField[];
40-
nodeId?: string;
4140
}
4241

4342
export function Nodes({
@@ -51,7 +50,6 @@ export function Nodes({
5150
requiredColumnsIds = REQUIRED_NODES_COLUMNS,
5251
selectedColumnsKey = NODES_TABLE_SELECTED_COLUMNS_LS_KEY,
5352
groupByParams = ALL_NODES_GROUP_BY_PARAMS,
54-
nodeId,
5553
}: NodesProps) {
5654
const {handleDataFetched, columnsSettings} = useStorageColumnsSettings();
5755

@@ -111,7 +109,6 @@ export function Nodes({
111109
selectedColumnsKey={selectedColumnsKey}
112110
groupByParams={effectiveGroupByParams}
113111
onDataFetched={handleDataFetched}
114-
nodeId={nodeId}
115112
/>
116113
);
117114
}

src/containers/Nodes/NodesTable.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ interface NodesTableProps {
2020
database?: string;
2121
databaseFullPath?: string;
2222

23-
nodeId?: string;
24-
2523
searchValue: string;
2624
withProblems: boolean;
2725
uptimeFilter: NodesUptimeFilterValues;
@@ -42,7 +40,6 @@ export function NodesTable({
4240
path,
4341
database,
4442
databaseFullPath,
45-
nodeId,
4643
searchValue,
4744
withProblems,
4845
uptimeFilter,
@@ -59,7 +56,6 @@ export function NodesTable({
5956
path,
6057
databaseFullPath,
6158
database,
62-
nodeId,
6359
searchValue,
6460
withProblems,
6561
uptimeFilter,
@@ -71,7 +67,6 @@ export function NodesTable({
7167
path,
7268
databaseFullPath,
7369
database,
74-
nodeId,
7570
searchValue,
7671
withProblems,
7772
uptimeFilter,

src/containers/Nodes/PaginatedNodes/GroupedNodesComponent.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ interface GroupedNodesComponentProps {
102102
selectedColumnsKey: string;
103103
groupByParams: NodesGroupByField[];
104104
onDataFetched?: (data: PaginatedTableData<PreparedStorageNode>) => void;
105-
nodeId?: string;
106105
}
107106

108107
export function GroupedNodesComponent({
@@ -117,7 +116,6 @@ export function GroupedNodesComponent({
117116
selectedColumnsKey,
118117
groupByParams,
119118
onDataFetched,
120-
nodeId,
121119
}: GroupedNodesComponentProps) {
122120
const {searchValue, peerRoleFilter, groupByParam} = useNodesPageQueryParams(
123121
groupByParams,
@@ -147,7 +145,6 @@ export function GroupedNodesComponent({
147145
filter: searchValue,
148146
filter_peer_role: peerRoleFilter,
149147
group: groupByParam,
150-
node_id: nodeId,
151148
limit: 0,
152149
},
153150
{

src/containers/Nodes/PaginatedNodes/NodesComponent.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ interface NodesComponentProps {
2727
selectedColumnsKey: string;
2828
groupByParams: NodesGroupByField[];
2929
onDataFetched?: (data: PaginatedTableData<PreparedStorageNode>) => void;
30-
nodeId?: string;
3130
}
3231

3332
export function NodesComponent({
@@ -42,7 +41,6 @@ export function NodesComponent({
4241
selectedColumnsKey,
4342
groupByParams,
4443
onDataFetched,
45-
nodeId,
4644
}: NodesComponentProps) {
4745
const {searchValue, uptimeFilter, peerRoleFilter, withProblems} = useNodesPageQueryParams(
4846
groupByParams,
@@ -80,7 +78,6 @@ export function NodesComponent({
8078
path={path}
8179
database={database}
8280
databaseFullPath={databaseFullPath}
83-
nodeId={nodeId}
8481
searchValue={searchValue}
8582
withProblems={withProblems}
8683
uptimeFilter={uptimeFilter}

src/containers/Nodes/PaginatedNodes/PaginatedNodes.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export interface PaginatedNodesProps {
3030
selectedColumnsKey: string;
3131
groupByParams: NodesGroupByField[];
3232
onDataFetched?: (data: PaginatedTableData<PreparedStorageNode>) => void;
33-
nodeId?: string;
3433
}
3534

3635
export function PaginatedNodes(props: PaginatedNodesProps) {

src/containers/Nodes/getNodes.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ export const getNodes: FetchData<
3131
peerRoleFilter,
3232
filterGroup,
3333
filterGroupBy,
34-
nodeId,
3534
} = filters ?? {};
3635

3736
const sortField = getNodesColumnSortField(columnId);
@@ -56,7 +55,6 @@ export const getNodes: FetchData<
5655
filter_peer_role: peerRoleFilter,
5756
filter_group: filterGroup,
5857
filter_group_by: filterGroupBy,
59-
node_id: nodeId,
6058
fieldsRequired: dataFieldsRequired,
6159
});
6260
const preparedResponse = prepareStorageNodesResponse(response);

0 commit comments

Comments
 (0)