UNPKG

@sky-mavis/tanto-widget

Version:
52 lines (48 loc) 1.6 kB
'use strict'; var jsxRuntime = require('@emotion/react/jsx-runtime'); var react = require('react'); var analytic = require('../../analytic.cjs'); var index = require('../../constants/index.cjs'); var useConnect = require('../../hooks/useConnect.cjs'); var useWidgetConnect = require('../../hooks/useWidgetConnect.cjs'); var connect = require('../../types/connect.cjs'); var ConnectLayout = require('./components/ConnectLayout.cjs'); function ConnectInjector() { const { selectedWallet, selectedConnector } = useWidgetConnect.useWidgetConnect(); const { status, connect: connect$1, error } = useConnect.useConnect({ connector: selectedConnector }); react.useEffect(() => { const timer = setTimeout(() => { connect$1(); analytic.analytic.sendEvent('wallet_connect_attempt', { chain_id: selectedConnector?.chainId, wallet_type: selectedWallet?.name }); }, index.DELAY_CONNECT); return () => clearTimeout(timer); }, [connect$1, selectedConnector, selectedWallet]); react.useEffect(() => { if (status === connect.ConnectState.ERROR && error) { analytic.analytic.sendEvent('wallet_connect_fail', { chain_id: selectedConnector?.chainId, wallet_type: selectedWallet?.name, error_reason: error.message }); } }, [status, error, selectedConnector, selectedWallet]); if (!selectedWallet) return null; return jsxRuntime.jsx(ConnectLayout.ConnectLayout, { wallet: selectedWallet, status: status, onRetry: connect$1 }); } exports.ConnectInjector = ConnectInjector;