@web3auth/modal
Version:
Multi chain wallet aggregator for web3Auth
54 lines (50 loc) • 1.34 kB
JavaScript
;
var noModal = require('@web3auth/no-modal');
var vue = require('vue');
var useWeb3AuthInner = require('./useWeb3AuthInner.js');
const useWeb3AuthUser = () => {
const {
web3Auth,
isConnected,
isMFAEnabled,
setIsMFAEnabled
} = useWeb3AuthInner.useWeb3AuthInner();
const loading = vue.ref(false);
const error = vue.ref(null);
const userInfo = vue.ref(null);
const getUserInfo = async () => {
try {
if (!web3Auth.value) throw noModal.WalletInitializationError.notReady();
error.value = null;
loading.value = true;
const result = await web3Auth.value.getUserInfo();
userInfo.value = result;
return result;
} catch (err) {
error.value = err;
} finally {
loading.value = false;
}
};
vue.watch(isConnected, async newIsConnected => {
if (newIsConnected && !userInfo.value) {
const result = await getUserInfo();
userInfo.value = result;
setIsMFAEnabled((result === null || result === void 0 ? void 0 : result.isMfaEnabled) || false);
}
if (!newIsConnected && userInfo.value) {
userInfo.value = null;
setIsMFAEnabled(false);
}
}, {
immediate: true
});
return {
loading,
error,
userInfo,
isMFAEnabled,
getUserInfo
};
};
exports.useWeb3AuthUser = useWeb3AuthUser;