1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-22 11:22:43 +02: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) {
const networkConfigurations = getNetworkConfigurations(state) || {};
const localhostFilter = (network) => network.chainId === CHAIN_IDS.LOCALHOST;
const networks = [];
// Mainnet always first
networks.push({
chainId: CHAIN_IDS.MAINNET,
nickname: MAINNET_DISPLAY_NAME,
rpcUrl: CHAIN_ID_TO_RPC_URL_MAP[CHAIN_IDS.MAINNET],
rpcPrefs: {
imageUrl: ETH_TOKEN_IMAGE_URL,
const networks = [
// Mainnet always first
{
chainId: CHAIN_IDS.MAINNET,
nickname: MAINNET_DISPLAY_NAME,
rpcUrl: CHAIN_ID_TO_RPC_URL_MAP[CHAIN_IDS.MAINNET],
rpcPrefs: {
imageUrl: ETH_TOKEN_IMAGE_URL,
},
providerType: NETWORK_TYPES.MAINNET,
ticker: CURRENCY_SYMBOLS.ETH,
},
providerType: NETWORK_TYPES.MAINNET,
ticker: CURRENCY_SYMBOLS.ETH,
});
// Custom networks added
networks.push(
...Object.entries(networkConfigurations)
.filter(
([, network]) =>
!localhostFilter(network) &&
network.chainId !== CHAIN_IDS.MAINNET &&
// Custom networks added by the user
...Object.values(networkConfigurations).filter(
({ chainId }) =>
![
CHAIN_IDS.LOCALHOST,
CHAIN_IDS.MAINNET,
// Linea gets added as a custom network configuration so
// we must ignore it here to display in test networks
network.chainId !== CHAIN_IDS.LINEA_TESTNET,
)
.map(([, network]) => network),
);
// Test networks
networks.push(
...[
{
chainId: CHAIN_IDS.GOERLI,
nickname: GOERLI_DISPLAY_NAME,
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],
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],
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.LINEA_TESTNET],
},
], // Localhosts
...Object.entries(networkConfigurations)
.filter(([, network]) => localhostFilter(network))
.map(([, network]) => network),
);
CHAIN_IDS.LINEA_TESTNET,
].includes(chainId),
),
// Test networks
{
chainId: CHAIN_IDS.GOERLI,
nickname: GOERLI_DISPLAY_NAME,
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],
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],
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.LINEA_TESTNET],
},
// Localhosts
...Object.values(networkConfigurations).filter(
({ chainId }) => chainId === CHAIN_IDS.LOCALHOST,
),
];
return networks;
}