import Fox from '../assets/metamask-fox.svg' import { Container, Loading } from './generic' import { useState, useEffect } from 'react' import { log } from '../modules/helpers' import { useAddress, getAddress } from '../modules/web3' import { Link } from 'react-router-dom' // /////////////////////////////// // Render component // /////////////////////////////// export default function ComponentName( ) { // /////////////////////////////// // States // /////////////////////////////// const [ loading, setLoading ] = useState( 'Detecting metamask...' ) const [ error, setError ] = useState( undefined ) const address = useAddress() // /////////////////////////////// // Functions // /////////////////////////////// // Handle user login interaction async function metamasklogin( e ) { e.preventDefault() try { setLoading( 'Connecting to Metamask' ) const address = await getAddress() log( 'Received: ', address ) } catch( e ) { setError( `Metamask error: ${ e.message || JSON.stringify( e ) }. Please reload the page.` ) } finally { setLoading( false ) } } // /////////////////////////////// // Lifecycle // /////////////////////////////// // Check for metamask on load useEffect( f => window.ethereum ? setLoading( false ) : setError( 'No web3 provider detected, please install metamask' ), [] ) // /////////////////////////////// // Render component // /////////////////////////////// // Loading component if( loading ) return // Error interface if( error ) return { error } // Actions menu if( address ) return Rocketeer Tools Mint Rocketeer View Rocketeer Portfolio Use Changing Room Discord verify Set address avatar // Login interface return Rocketeer Interface Connect wallet }
{ error }