@web3auth/modal
Version:
Multi chain wallet aggregator for web3Auth
47 lines (43 loc) • 1.24 kB
JavaScript
;
var react = require('react');
var useWeb3AuthInner = require('./useWeb3AuthInner.js');
const useIdentityToken = () => {
const {
web3Auth,
isAuthorized
} = useWeb3AuthInner.useWeb3AuthInner();
const [loading, setLoading] = react.useState(false);
const [error, setError] = react.useState(null);
const [token, setToken] = react.useState(null);
const getIdentityToken = react.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]);
react.useEffect(() => {
if (!web3Auth) return;
if (!isAuthorized && token) {
setToken(null);
}
if (isAuthorized && !token) {
setToken(web3Auth.idToken);
}
}, [isAuthorized, token, web3Auth]);
return {
loading,
error,
token,
getIdentityToken
};
};
exports.useIdentityToken = useIdentityToken;