@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
49 lines (45 loc) • 1.25 kB
JavaScript
;
var react = require('react');
var useWeb3AuthInner = require('./useWeb3AuthInner.js');
const useWeb3AuthConnect = () => {
const context = useWeb3AuthInner.useWeb3AuthInner();
const {
web3Auth,
isConnected
} = context;
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 (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
};
};
exports.useWeb3AuthConnect = useWeb3AuthConnect;