@web3auth/modal
Version:
Multi chain wallet aggregator for web3Auth
51 lines (47 loc) • 1.34 kB
JavaScript
;
var react = require('react');
var useWeb3AuthInner = require('./useWeb3AuthInner.js');
const useWeb3AuthUser = () => {
const {
web3Auth,
isConnected,
isMFAEnabled,
setIsMFAEnabled
} = useWeb3AuthInner.useWeb3AuthInner();
const [userInfo, setUserInfo] = react.useState(null);
const [loading, setLoading] = react.useState(false);
const [error, setError] = react.useState(null);
const getUserInfo = react.useCallback(async () => {
setLoading(true);
setError(null);
try {
const userInfo = await web3Auth.getUserInfo();
setUserInfo(userInfo);
return userInfo;
} catch (error) {
setError(error);
} finally {
setLoading(false);
}
}, [web3Auth]);
react.useEffect(() => {
const saveUserInfo = async () => {
const userInfo = await getUserInfo();
setUserInfo(userInfo);
setIsMFAEnabled((userInfo === null || userInfo === void 0 ? void 0 : userInfo.isMfaEnabled) || false);
};
if (isConnected && !userInfo) saveUserInfo();
if (!isConnected && userInfo) {
setUserInfo(null);
setIsMFAEnabled(false);
}
}, [isConnected, userInfo, getUserInfo, setIsMFAEnabled]);
return {
loading,
error,
userInfo,
isMFAEnabled,
getUserInfo
};
};
exports.useWeb3AuthUser = useWeb3AuthUser;