@web3auth/modal
Version:
Multi chain wallet aggregator for web3Auth
41 lines (38 loc) • 1.07 kB
JavaScript
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 };