UNPKG

@sky-mavis/tanto-widget

Version:
56 lines 1.6 kB
import {useState,useCallback,useEffect}from'react';import {useConfig,useConnect as useConnect$1}from'wagmi';import {ConnectState}from'../types/connect.mjs';import {isWCConnector,isMobile}from'../utils/index.mjs';import {useTantoConfig}from'./useTantoConfig.mjs';function useConnect({ connector }) { const { setState } = useConfig(); const { initialChainId, disableProfile, hideConnectSuccessPrompt } = useTantoConfig(); const { status: wagmiStatus, connect: wagmiConnect, error } = useConnect$1({ mutation: { onError(error) { console.debug(error); } } }); const [status, setStatus] = useState(ConnectState.PENDING); const connect = useCallback(() => { if (!connector) return; if (disableProfile) setState(prev => ({ ...prev, current: null })); wagmiConnect({ connector, chainId: initialChainId }); }, [connector, disableProfile, wagmiConnect]); useEffect(() => { setStatus(prevStatus => { switch (wagmiStatus) { case 'idle': case 'pending': return isWCConnector(connector?.id) && isMobile() ? ConnectState.OPENING_WALLET : ConnectState.PENDING; case 'success': return hideConnectSuccessPrompt ? prevStatus : ConnectState.SUCCESS; case 'error': return ConnectState.ERROR; default: return ConnectState.PENDING; } }); }, [wagmiStatus, connector?.id, disableProfile, hideConnectSuccessPrompt]); return { status, connector, connect, error }; }export{useConnect};