UNPKG

@web3auth/modal

Version:

Multi chain wallet aggregator for web3Auth

41 lines (38 loc) 1.07 kB
import { useState, useCallback, useEffect } from 'react'; import { useWeb3AuthInner } from './useWeb3AuthInner.js'; const useIdentityToken = () => { const { web3Auth, isConnected } = useWeb3AuthInner(); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [token, setToken] = useState(null); const getIdentityToken = useCallback(async () => { setLoading(true); setError(null); try { const userAuthInfo = await web3Auth.getIdentityToken(); if (userAuthInfo !== null && userAuthInfo !== void 0 && userAuthInfo.idToken) { setToken(userAuthInfo.idToken); } return userAuthInfo === null || userAuthInfo === void 0 ? void 0 : userAuthInfo.idToken; } catch (error) { setError(error); } finally { setLoading(false); } }, [web3Auth]); useEffect(() => { if (!isConnected && token) { setToken(null); } }, [isConnected, token]); return { loading, error, token, getIdentityToken }; }; export { useIdentityToken };