Skip to content

Commit 4378c40

Browse files
authored
Merge branch 'main' into feat/add-gator-permissions-feature-flag
2 parents e4ea8e2 + c3d75a8 commit 4378c40

3 files changed

Lines changed: 160 additions & 125 deletions

File tree

ui/components/multichain/network-manager/network-manager.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Provider } from 'react-redux';
33
import configureStore from '../../../store/store';
44
import testData from '../../../../.storybook/test-data';
55

6-
import { NetworkManager } from '.';
6+
import { NetworkManager } from './network-manager';
77

88
const store = configureStore(testData);
99

ui/components/multichain/network-manager/network-manager.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22
import { screen, fireEvent } from '@testing-library/react';
33
import { RpcEndpointType } from '@metamask/network-controller';
4-
import { renderWithProvider } from '../../../../test/jest';
4+
import { renderWithProvider } from '../../../../test/lib/render-helpers-navigate';
55
import configureStore from '../../../store/store';
66
import mockState from '../../../../test/data/mock-state.json';
77
import { SOLANA_WALLET_SNAP_ID } from '../../../../shared/lib/accounts';

ui/components/multichain/network-manager/network-manager.tsx

Lines changed: 158 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@ import {
55
import React, { useCallback, useMemo } from 'react';
66
import { useDispatch, useSelector } from 'react-redux';
77
import {
8-
MemoryRouter,
98
Route,
10-
Switch,
11-
useHistory,
9+
Routes,
10+
useNavigate,
1211
useLocation,
13-
} from 'react-router-dom';
12+
} from 'react-router-dom-v5-compat';
1413
import * as URI from 'uri-js';
1514
import { useI18nContext } from '../../../hooks/useI18nContext';
1615
import { useNetworkFormState } from '../../../pages/settings/networks-tab/networks-form/networks-form-state';
@@ -32,17 +31,15 @@ import { AddNetwork } from './components/add-network';
3231
import { NetworkTabs } from './network-tabs';
3332
import { useNetworkManagerState } from './hooks/useNetworkManagerState';
3433

35-
// Router content component
36-
const NetworkManagerRouter = () => {
34+
export const NetworkManager = () => {
35+
const dispatch = useDispatch();
3736
const t = useI18nContext();
38-
const history = useHistory();
37+
const navigate = useNavigate();
3938
const location = useLocation();
40-
const dispatch = useDispatch();
4139

4240
const { initialTab } = useNetworkManagerState();
43-
4441
const handleNewNetwork = () => {
45-
history.push('/add');
42+
navigate('/add');
4643
};
4744

4845
const [, evmNetworks] = useSelector(
@@ -83,13 +80,13 @@ const NetworkManagerRouter = () => {
8380
});
8481

8582
if (location.pathname === '/edit-rpc') {
86-
history.push('/edit');
83+
navigate('/edit');
8784
} else {
88-
history.push('/add');
85+
navigate('/add');
8986
}
9087
}
9188
},
92-
[history, networkFormState],
89+
[navigate, networkFormState, location.pathname],
9390
);
9491

9592
const handleAddExplorerUrl = useCallback(
@@ -109,137 +106,175 @@ const NetworkManagerRouter = () => {
109106
networkFormState.blockExplorers.blockExplorerUrls.length,
110107
});
111108
if (location.pathname === '/edit-explorer-url') {
112-
history.push('/edit');
109+
navigate('/edit');
113110
} else {
114-
history.push('/add');
111+
navigate('/add');
115112
}
116113
onComplete?.();
117114
}
118115
};
119116
},
120-
[networkFormState, history],
117+
[networkFormState, navigate, location.pathname],
121118
);
122119

123120
const handleClose = () => {
124121
dispatch(hideModal());
125-
history.push('/');
122+
navigate('/');
126123
};
127124

128125
const handleGoHome = () => {
129-
history.push('/');
126+
navigate('/');
130127
};
131128

132129
const handleEditOnComplete = useCallback(() => {
133-
history.push('/edit');
134-
}, [history]);
130+
navigate('/edit');
131+
}, [navigate]);
135132

136133
const handleAddOnComplete = useCallback(() => {
137-
history.push('/add');
138-
}, [history]);
139-
140-
return (
141-
<Switch>
142-
<Route path="/add">
143-
<ModalHeader
144-
onClose={handleClose}
145-
onBack={handleGoHome}
146-
closeButtonProps={{ 'data-testid': 'modal-header-close-button' }}
147-
>
148-
{t('addNetwork')}
149-
</ModalHeader>
150-
<AddNetwork
151-
networkFormState={networkFormState}
152-
network={editedNetwork as UpdateNetworkFields}
153-
/>
154-
</Route>
155-
<Route path="/add-rpc">
156-
<ModalHeader
157-
onClose={handleClose}
158-
onBack={handleNewNetwork}
159-
closeButtonProps={{ 'data-testid': 'modal-header-close-button' }}
160-
>
161-
{t('addRpcUrl')}
162-
</ModalHeader>
163-
<AddRpcUrlModal onAdded={handleAddRPC} />
164-
</Route>
165-
<Route path="/edit-rpc">
166-
<ModalHeader
167-
onClose={handleClose}
168-
onBack={handleEditOnComplete}
169-
closeButtonProps={{ 'data-testid': 'modal-header-close-button' }}
170-
>
171-
{t('addRpcUrl')}
172-
</ModalHeader>
173-
<AddRpcUrlModal onAdded={handleAddRPC} />
174-
</Route>
175-
<Route path="/add-explorer-url">
176-
<ModalHeader
177-
onClose={handleClose}
178-
onBack={handleNewNetwork}
179-
closeButtonProps={{ 'data-testid': 'modal-header-close-button' }}
180-
>
181-
{t('addBlockExplorerUrl')}
182-
</ModalHeader>
183-
<AddBlockExplorerModal
184-
onAdded={handleAddExplorerUrl(handleAddOnComplete)}
185-
/>
186-
</Route>
187-
<Route path="/edit-explorer-url">
188-
<ModalHeader
189-
onClose={handleClose}
190-
onBack={handleNewNetwork}
191-
closeButtonProps={{ 'data-testid': 'modal-header-close-button' }}
192-
>
193-
{t('addBlockExplorerUrl')}
194-
</ModalHeader>
195-
<AddBlockExplorerModal
196-
onAdded={handleAddExplorerUrl(handleEditOnComplete)}
197-
/>
198-
</Route>
199-
<Route path="/edit">
200-
<ModalHeader
201-
onClose={handleClose}
202-
onBack={handleGoHome}
203-
closeButtonProps={{ 'data-testid': 'modal-header-close-button' }}
204-
>
205-
{t('editNetwork')}
206-
</ModalHeader>
207-
<AddNetwork
208-
networkFormState={networkFormState}
209-
network={editedNetwork as UpdateNetworkFields}
210-
isEdit={true}
211-
/>
212-
</Route>
213-
<Route path="/select-rpc">
214-
<ModalHeader
215-
onClose={handleClose}
216-
onBack={handleGoHome}
217-
closeButtonProps={{ 'data-testid': 'modal-header-close-button' }}
218-
>
219-
{t('selectRpcUrl')}
220-
</ModalHeader>
221-
<SelectRpcUrlModal onNetworkChange={handleClose} />
222-
</Route>
223-
<Route path="/">
224-
<NetworkTabs initialTab={initialTab} />
225-
</Route>
226-
</Switch>
227-
);
228-
};
229-
230-
export const NetworkManager = () => {
231-
const dispatch = useDispatch();
232-
233-
const onClose = useCallback(() => {
234-
dispatch(hideModal());
235-
}, [dispatch]);
134+
navigate('/add');
135+
}, [navigate]);
236136

237137
return (
238-
<Modal isOpen onClose={onClose} isClosedOnEscapeKey isClosedOnOutsideClick>
138+
<Modal
139+
isOpen
140+
onClose={handleClose}
141+
isClosedOnEscapeKey
142+
isClosedOnOutsideClick
143+
>
239144
<ModalContent size={ModalContentSize.Md}>
240-
<MemoryRouter initialEntries={['/']}>
241-
<NetworkManagerRouter />
242-
</MemoryRouter>
145+
<Routes>
146+
<Route
147+
path="/add"
148+
element={
149+
<>
150+
<ModalHeader
151+
onClose={handleClose}
152+
onBack={handleGoHome}
153+
closeButtonProps={{
154+
'data-testid': 'modal-header-close-button',
155+
}}
156+
>
157+
{t('addNetwork')}
158+
</ModalHeader>
159+
<AddNetwork
160+
networkFormState={networkFormState}
161+
network={editedNetwork as UpdateNetworkFields}
162+
/>
163+
</>
164+
}
165+
/>
166+
<Route
167+
path="/add-rpc"
168+
element={
169+
<>
170+
<ModalHeader
171+
onClose={handleClose}
172+
onBack={handleNewNetwork}
173+
closeButtonProps={{
174+
'data-testid': 'modal-header-close-button',
175+
}}
176+
>
177+
{t('addRpcUrl')}
178+
</ModalHeader>
179+
<AddRpcUrlModal onAdded={handleAddRPC} />
180+
</>
181+
}
182+
/>
183+
<Route
184+
path="/edit-rpc"
185+
element={
186+
<>
187+
<ModalHeader
188+
onClose={handleClose}
189+
onBack={handleEditOnComplete}
190+
closeButtonProps={{
191+
'data-testid': 'modal-header-close-button',
192+
}}
193+
>
194+
{t('addRpcUrl')}
195+
</ModalHeader>
196+
<AddRpcUrlModal onAdded={handleAddRPC} />
197+
</>
198+
}
199+
/>
200+
<Route
201+
path="/add-explorer-url"
202+
element={
203+
<>
204+
<ModalHeader
205+
onClose={handleClose}
206+
onBack={handleNewNetwork}
207+
closeButtonProps={{
208+
'data-testid': 'modal-header-close-button',
209+
}}
210+
>
211+
{t('addBlockExplorerUrl')}
212+
</ModalHeader>
213+
<AddBlockExplorerModal
214+
onAdded={handleAddExplorerUrl(handleAddOnComplete)}
215+
/>
216+
</>
217+
}
218+
/>
219+
<Route
220+
path="/edit-explorer-url"
221+
element={
222+
<>
223+
<ModalHeader
224+
onClose={handleClose}
225+
onBack={handleNewNetwork}
226+
closeButtonProps={{
227+
'data-testid': 'modal-header-close-button',
228+
}}
229+
>
230+
{t('addBlockExplorerUrl')}
231+
</ModalHeader>
232+
<AddBlockExplorerModal
233+
onAdded={handleAddExplorerUrl(handleEditOnComplete)}
234+
/>
235+
</>
236+
}
237+
/>
238+
<Route
239+
path="/edit"
240+
element={
241+
<>
242+
<ModalHeader
243+
onClose={handleClose}
244+
onBack={handleGoHome}
245+
closeButtonProps={{
246+
'data-testid': 'modal-header-close-button',
247+
}}
248+
>
249+
{t('editNetwork')}
250+
</ModalHeader>
251+
<AddNetwork
252+
networkFormState={networkFormState}
253+
network={editedNetwork as UpdateNetworkFields}
254+
isEdit={true}
255+
/>
256+
</>
257+
}
258+
/>
259+
<Route
260+
path="/select-rpc"
261+
element={
262+
<>
263+
<ModalHeader
264+
onClose={handleClose}
265+
onBack={handleGoHome}
266+
closeButtonProps={{
267+
'data-testid': 'modal-header-close-button',
268+
}}
269+
>
270+
{t('selectRpcUrl')}
271+
</ModalHeader>
272+
<SelectRpcUrlModal onNetworkChange={handleClose} />
273+
</>
274+
}
275+
/>
276+
<Route path="/" element={<NetworkTabs initialTab={initialTab} />} />
277+
</Routes>
243278
</ModalContent>
244279
</Modal>
245280
);

0 commit comments

Comments
 (0)