@sky-mavis/tanto-widget
Version:
Tanto Widget
52 lines (48 loc) • 1.6 kB
JavaScript
;
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;