@web3auth/modal
Version:
Multi chain wallet aggregator for web3Auth
50 lines (47 loc) • 1.31 kB
JavaScript
import { WalletInitializationError, log } from '@web3auth/no-modal';
import { ref, watch } from 'vue';
import { useWeb3AuthInner } from './useWeb3AuthInner.js';
const useIdentityToken = () => {
const {
web3Auth,
isAuthorized
} = useWeb3AuthInner();
const loading = ref(false);
const error = ref(null);
const token = ref(null);
const getIdentityToken = async () => {
try {
if (!web3Auth.value) throw WalletInitializationError.notReady();
error.value = null;
loading.value = true;
const result = await web3Auth.value.getIdentityToken();
if (result !== null && result !== void 0 && result.idToken) {
token.value = result.idToken;
}
return result === null || result === void 0 ? void 0 : result.idToken;
} catch (err) {
log.error("Error getting identity token", err);
error.value = err;
} finally {
loading.value = false;
}
};
watch(isAuthorized, newIsAuthorized => {
if (!web3Auth.value) return;
if (!newIsAuthorized && token.value) {
token.value = null;
}
if (newIsAuthorized && !token.value) {
token.value = web3Auth.value.idToken;
}
}, {
immediate: true
});
return {
loading,
error,
token,
getIdentityToken
};
};
export { useIdentityToken };