@web3auth/modal
Version:
Multi chain wallet aggregator for web3Auth
64 lines (60 loc) • 1.61 kB
JavaScript
;
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;