UNPKG

@sky-mavis/tanto-widget

Version:
38 lines 1.13 kB
import {useState,useCallback,useEffect}from'react';import {DELAY_CONNECT}from'../constants/index.mjs';import {isWCConnector}from'../utils/index.mjs';import {useConnect}from'./useConnect.mjs';function useWalletConnectUri({ connector, onReceiveDisplayUri }) { const [uri, setUri] = useState(undefined); const { status, connect, error } = useConnect({ connector }); const generateConnectUri = useCallback(() => { if (!connector || !isWCConnector(connector.id)) return; setUri(undefined); const handleDisplayUri = ({ type, data }) => { if (type !== 'display_uri' || typeof data !== 'string') return; setUri(data); onReceiveDisplayUri?.(data); connector.emitter.off('message', handleDisplayUri); }; connector.emitter.on('message', handleDisplayUri); connect(); }, [connector, connect]); useEffect(() => { const timer = setTimeout(generateConnectUri, DELAY_CONNECT); return () => clearTimeout(timer); }, [generateConnectUri]); return { uri, status, generateConnectUri, error }; }export{useWalletConnectUri};