UNPKG

@web3auth/modal

Version:

Multi chain wallet aggregator for web3Auth

49 lines (46 loc) 1.29 kB
import { useState, useCallback, useEffect } from 'react'; import { useWeb3AuthInner } from './useWeb3AuthInner.js'; const useWeb3AuthUser = () => { const { web3Auth, isConnected, isMFAEnabled, setIsMFAEnabled } = useWeb3AuthInner(); const [userInfo, setUserInfo] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const getUserInfo = useCallback(async () => { setLoading(true); setError(null); try { const userInfo = await web3Auth.getUserInfo(); setUserInfo(userInfo); return userInfo; } catch (error) { setError(error); } finally { setLoading(false); } }, [web3Auth]); useEffect(() => { const saveUserInfo = async () => { const userInfo = await getUserInfo(); setUserInfo(userInfo); setIsMFAEnabled((userInfo === null || userInfo === void 0 ? void 0 : userInfo.isMfaEnabled) || false); }; if (isConnected && !userInfo) saveUserInfo(); if (!isConnected && userInfo) { setUserInfo(null); setIsMFAEnabled(false); } }, [isConnected, userInfo, getUserInfo, setIsMFAEnabled]); return { loading, error, userInfo, isMFAEnabled, getUserInfo }; }; export { useWeb3AuthUser };