UNPKG

@web3auth/modal

Version:

Multi chain wallet aggregator for web3Auth

64 lines (60 loc) 1.61 kB
'use strict'; var react = require('react'); var useWeb3AuthInner = require('./useWeb3AuthInner.js'); const useWeb3AuthConnect = () => { const { web3Auth, isConnected } = useWeb3AuthInner.useWeb3AuthInner(); const [loading, setLoading] = react.useState(false); const [error, setError] = react.useState(null); const [connectorName, setConnectorName] = react.useState(null); react.useEffect(() => { if (!web3Auth) return; if (!isConnected && connectorName) { setConnectorName(null); } if (isConnected && !connectorName) { setConnectorName(web3Auth.connectedConnectorName); } }, [isConnected, connectorName, web3Auth]); const connect = react.useCallback(async () => { setLoading(true); setError(null); try { const provider = await web3Auth.connect(); if (provider) { setConnectorName(web3Auth.connectedConnectorName); } return provider; } catch (error) { setError(error); } finally { setLoading(false); } }, [web3Auth]); const connectTo = react.useCallback(async (connector, params) => { setLoading(true); setError(null); try { const provider = await web3Auth.connectTo(connector, params); if (provider) { setConnectorName(web3Auth.connectedConnectorName); } return provider; } catch (error) { setError(error); } finally { setLoading(false); } }, [web3Auth]); return { isConnected, loading, error, connectorName, connect, connectTo }; }; exports.useWeb3AuthConnect = useWeb3AuthConnect;