UNPKG

@sky-mavis/tanto-widget

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