UNPKG

@sky-mavis/tanto-widget

Version:
46 lines (42 loc) 1.42 kB
'use strict'; var react = require('react'); var wagmi = require('wagmi'); var constants = require('../../constants.cjs'); var useAuthEffect = require('../../hooks/useAuthEffect.cjs'); var walletDetection = require('../../utils/walletDetection.cjs'); function useWaypointMessageHandler(enableAuth) { const { connectors } = wagmi.useConfig(); const waypointConnector = connectors.find(connector => walletDetection.isWaypointConnector(connector.id)); react.useEffect(() => { if (!enableAuth) return; const handleMessage = async ({ data, origin }) => { if (!constants.WAYPOINT_ORIGINS.includes(origin)) return; if (data.method !== 'auth') return; const chainId = (await waypointConnector?.getChainId()) ?? 2020; if (data.type === 'success' && data.data) { const { address, id_token } = data.data; useAuthEffect.authEventEmitter.emit('success', { address, chainId, token: id_token }); } if (data.type === 'fail' && data.error) { useAuthEffect.authEventEmitter.emit('failed', { error: data.error }); } }; window.addEventListener('message', handleMessage); return () => window.removeEventListener('message', handleMessage); }, [enableAuth, waypointConnector]); } exports.useWaypointMessageHandler = useWaypointMessageHandler;