import { LmComponentRender } from '@LmComponentRender' import { useWeb3React } from '@web3-react/core' import { ButtonStoryblok, ImageStoryblok, MoralisButtonStoryblok } from '../../typings/generated/components-schema' import useMetaMaskOnboarding from './hooks/useMetamaskOnboarding' import { useWeb3Connector } from './hooks/useWeb3Connector' import { metaMask } from './connectors/metamask' type MoralisAuthProps = { content: MoralisButtonStoryblok } const assets = { metamask: 'https://cdn.jsdelivr.net/gh/MetaMask/brand-resources/SVG/metamask-fox.svg', walletconnect: 'https://cdn.jsdelivr.net/gh/WalletConnect/walletconnect-assets/svg/circle/walletconnect-circle-blue.svg' } export default function MoralisAuth({ content }: MoralisAuthProps) { const { account, connector } = useWeb3React() const { isWalletConnectActivating, isMetaMaskActivating, walletConnect } = useWeb3Connector() const { isWeb3Available, startOnboarding } = useMetaMaskOnboarding() if (account) { let logoutElement = content.logout?.[0] return (
{ // await logout() window.gtag && gtag('event', 'logout', { event_category: 'Auth', event_label: 'Logout' }) if (typeof connector.resetState === 'function') { connector.resetState() } // await deactivate() }} />
) } let loginElement = content.login?.[0] let loginWalletElement = content.login_walletconnect?.[0] return (
{ if (isMetaMaskActivating) { return } try { window.gtag && gtag('event', 'sign_up', { event_category: 'Auth', event_label: 'Login MetaMask' }) if (isWeb3Available) { await metaMask.activate() } else { await startOnboarding() } window.gtag && gtag('event', 'sign_up', { event_category: 'Auth', event_label: 'Login MetaMask Success' }) window.fbq && fbq('track', 'Lead') } catch (e) { window.gtag && gtag('event', 'exception', { event_category: 'Auth', event_label: 'Login MetaMask Failed' }) console.log(e) } }} />
{ if (isWalletConnectActivating) { return } try { window.gtag && window.gtag('event', 'sign_up', { event_category: 'Auth', event_label: 'Login WalletConnect' }) await walletConnect.activate() // await activate(walletconnect, (error) => { // if (error instanceof UserRejectedRequestErrorWalletConnect) { // walletconnect.walletConnectProvider = null // } // }) window.gtag && window.gtag('event', 'sign_up', { event_category: 'Auth', event_label: 'Login WalletConnect Success' }) window.fbq && window.fbq('track', 'Lead') } catch (e) { console.log(e) window.gtag && window.gtag('event', 'exception', { event_category: 'Auth', event_label: 'Login WalletConnect Failed' }) } }} > WalletConnect
) }