1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

UX: Multichain: Improve networks selector (#19083)

* UX: Multichain: Improve networks selector

* Update ui/selectors/selectors.js

Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>

* Update ui/selectors/selectors.js

Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>

* Update ui/selectors/selectors.js

Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>

* Improvements

---------

Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
This commit is contained in:
David Walsh 2023-05-15 10:15:39 -05:00 committed by GitHub
parent f95320d03e
commit e5fdb72acc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1170,61 +1170,56 @@ export function getAllEnabledNetworks(state) {
export function getAllNetworks(state) { export function getAllNetworks(state) {
const networkConfigurations = getNetworkConfigurations(state) || {}; const networkConfigurations = getNetworkConfigurations(state) || {};
const localhostFilter = (network) => network.chainId === CHAIN_IDS.LOCALHOST;
const networks = []; const networks = [
// Mainnet always first // Mainnet always first
networks.push({ {
chainId: CHAIN_IDS.MAINNET, chainId: CHAIN_IDS.MAINNET,
nickname: MAINNET_DISPLAY_NAME, nickname: MAINNET_DISPLAY_NAME,
rpcUrl: CHAIN_ID_TO_RPC_URL_MAP[CHAIN_IDS.MAINNET], rpcUrl: CHAIN_ID_TO_RPC_URL_MAP[CHAIN_IDS.MAINNET],
rpcPrefs: { rpcPrefs: {
imageUrl: ETH_TOKEN_IMAGE_URL, imageUrl: ETH_TOKEN_IMAGE_URL,
},
providerType: NETWORK_TYPES.MAINNET,
ticker: CURRENCY_SYMBOLS.ETH,
}, },
providerType: NETWORK_TYPES.MAINNET, // Custom networks added by the user
ticker: CURRENCY_SYMBOLS.ETH, ...Object.values(networkConfigurations).filter(
}); ({ chainId }) =>
// Custom networks added ![
networks.push( CHAIN_IDS.LOCALHOST,
...Object.entries(networkConfigurations) CHAIN_IDS.MAINNET,
.filter(
([, network]) =>
!localhostFilter(network) &&
network.chainId !== CHAIN_IDS.MAINNET &&
// Linea gets added as a custom network configuration so // Linea gets added as a custom network configuration so
// we must ignore it here to display in test networks // we must ignore it here to display in test networks
network.chainId !== CHAIN_IDS.LINEA_TESTNET, CHAIN_IDS.LINEA_TESTNET,
) ].includes(chainId),
.map(([, network]) => network), ),
); // Test networks
// Test networks {
networks.push( chainId: CHAIN_IDS.GOERLI,
...[ nickname: GOERLI_DISPLAY_NAME,
{ rpcUrl: CHAIN_ID_TO_RPC_URL_MAP[CHAIN_IDS.GOERLI],
chainId: CHAIN_IDS.GOERLI, providerType: NETWORK_TYPES.GOERLI,
nickname: GOERLI_DISPLAY_NAME, ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.GOERLI],
rpcUrl: CHAIN_ID_TO_RPC_URL_MAP[CHAIN_IDS.GOERLI], },
providerType: NETWORK_TYPES.GOERLI, {
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.GOERLI], chainId: CHAIN_IDS.SEPOLIA,
}, nickname: SEPOLIA_DISPLAY_NAME,
{ rpcUrl: CHAIN_ID_TO_RPC_URL_MAP[CHAIN_IDS.SEPOLIA],
chainId: CHAIN_IDS.SEPOLIA, providerType: NETWORK_TYPES.SEPOLIA,
nickname: SEPOLIA_DISPLAY_NAME, ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.SEPOLIA],
rpcUrl: CHAIN_ID_TO_RPC_URL_MAP[CHAIN_IDS.SEPOLIA], },
providerType: NETWORK_TYPES.SEPOLIA, {
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.SEPOLIA], chainId: CHAIN_IDS.LINEA_TESTNET,
}, nickname: LINEA_TESTNET_DISPLAY_NAME,
{ rpcUrl: CHAIN_ID_TO_RPC_URL_MAP[CHAIN_IDS.LINEA_TESTNET],
chainId: CHAIN_IDS.LINEA_TESTNET, ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.LINEA_TESTNET],
nickname: LINEA_TESTNET_DISPLAY_NAME, },
rpcUrl: CHAIN_ID_TO_RPC_URL_MAP[CHAIN_IDS.LINEA_TESTNET], // Localhosts
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.LINEA_TESTNET], ...Object.values(networkConfigurations).filter(
}, ({ chainId }) => chainId === CHAIN_IDS.LOCALHOST,
], // Localhosts ),
...Object.entries(networkConfigurations) ];
.filter(([, network]) => localhostFilter(network))
.map(([, network]) => network),
);
return networks; return networks;
} }