import { useCallback, useContext, useState, } from 'react'; import { useTranslation } from 'react-i18next'; import { getChainNameById } from '../../../lib/chains'; import { SimpleTextBody } from '../../../components/Body/SimpleTextBody'; import { FooterButton } from '../../../components/Footer/FooterButton'; import { HeaderNavigation } from '../../../components/Header/HeaderNavigation'; import { EthereumPlanetHero } from '../../../components/Hero/EthereumPlanetHero'; import { SimpleLayout } from '../../../components/SimpleLayout/SimpleLayout'; import { ConnectWidgetViews } from '../../../context/view-context/ConnectViewContextTypes'; import { ConnectActions, ConnectContext } from '../context/ConnectContext'; import { ViewContext, ViewActions, } from '../../../context/view-context/ViewContext'; export function SwitchNetworkEth() { const { t } = useTranslation(); const { viewDispatch } = useContext(ViewContext); const { connectDispatch, connectState } = useContext(ConnectContext); const { checkout, provider, sendCloseEvent } = connectState; const [buttonTextKey, setButtonTextKey] = useState(t('views.SWITCH_NETWORK.eth.button.text')); const switchNetwork = useCallback(async () => { if (!provider || !checkout) return; try { const switchRes = await checkout.switchNetwork({ provider, chainId: checkout.config.l1ChainId, }); connectDispatch({ payload: { type: ConnectActions.SET_PROVIDER, provider: switchRes.provider, }, }); viewDispatch({ payload: { type: ViewActions.UPDATE_VIEW, view: { type: ConnectWidgetViews.SUCCESS, }, }, }); } catch (err: any) { setButtonTextKey(t('views.SWITCH_NETWORK.eth.button.retryText')); } }, [provider, checkout]); return ( )} footer={( )} heroContent={} floatHeader > {t('views.SWITCH_NETWORK.eth.body')} ); }