@web3auth/modal
Version:
Multi chain wallet aggregator for web3Auth
52 lines (49 loc) • 1.3 kB
JavaScript
import { WalletInitializationError } from '@web3auth/no-modal';
import { ref, watch } from 'vue';
import { useWeb3AuthInner } from './useWeb3AuthInner.js';
const useWeb3AuthUser = () => {
const {
web3Auth,
isConnected,
isMFAEnabled,
setIsMFAEnabled
} = useWeb3AuthInner();
const loading = ref(false);
const error = ref(null);
const userInfo = ref(null);
const getUserInfo = async () => {
try {
if (!web3Auth.value) throw 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;
}
};
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
};
};
export { useWeb3AuthUser };