import Moralis from 'moralis/types'; import React, { FC } from 'react'; import { useMoralis } from 'react-moralis'; import { Button } from '../Button'; import { iconTypes } from '../Icon'; import connectors from './config'; import { WalletModalProps } from './types'; import WalletModalStyles from './WalletModal.styles'; const { GridItemStyled, GridStyled, HeaderStyled, ModalStyled, TitleStyled, WalletCardStyled, WalletLogo, WalletNameStyled, WrapperStyled, } = WalletModalStyles; const WalletModal: FC = ({ chainId, isOpened = true, moralisAuth, setIsOpened, signingMessage = 'Moralis Authentication', ...props }) => { const { authenticate, isInitialized, enableWeb3 } = useMoralis(); function connectWallet(provider: Moralis.Web3ProviderType) { // to avoid problems in Next.JS apps because of localStorage if (typeof window == 'undefined') return; const connectProps = { provider, chainId, onSuccess: () => { window.localStorage.setItem('provider', provider); setIsOpened(false); }, }; isInitialized && moralisAuth ? authenticate({ ...connectProps, signingMessage }) : enableWeb3(connectProps); } if (!isOpened) return null; return ( Connect Wallet