UNPKG

@web3auth/modal

Version:

Multi chain wallet aggregator for web3Auth

50 lines (47 loc) 1.31 kB
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 };