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