/* * Copyright (c) 2022 @automata-network/wallet-sdk authors and contributors. * This software may be modified and distributed under the terms of UNLICENSED * license. Refer to the LICENSE file for details. */ import React, { KeyboardEvent, useCallback } from 'react' import 'react-responsive-modal/styles.css' import { useWallet } from '../../store/wallet' type Props = { open: boolean } export const SwitchNetworkMenu: React.FC = ({ open }) => { const { chains, switchChain, prefixCls } = useWallet() const onNetworkOptionClick = useCallback( async (chainId: string) => { await switchChain(chainId) }, [switchChain] ) const onNetworkOptionEnterDown = useCallback( (chainId: string, e: KeyboardEvent) => { const key = e.key.toLowerCase() if (key === 'enter') { return onNetworkOptionClick(chainId) } }, [onNetworkOptionClick] ) if (!open) { return null } return (
Select a supported network
{chains.map((chain) => (
{ onNetworkOptionClick(chain.chainId) }} onKeyDown={(e: KeyboardEvent) => onNetworkOptionEnterDown(chain.chainId, e) } > {chain.iconUrl ? ( {`${chain.chainName} ) : ( chain.chainName.charAt(0) )} {chain.chainName}
))}
) }