{"ast":null,"code":"import { useState, useEffect } from 'react';\nimport { useWeb3React } from '@web3-react-wan/core';\nimport { injected } from './connectors';\nexport function useEagerConnect() {\n  const {\n    activate,\n    active\n  } = useWeb3React();\n  const {\n    0: tried,\n    1: setTried\n  } = useState(false);\n  useEffect(() => {\n    injected.isAuthorized().then(isAuthorized => {\n      if (isAuthorized) {\n        activate(injected, undefined, true).catch(() => {\n          setTried(true);\n        });\n      } else {\n        setTried(true);\n      }\n    });\n  }, []); // intentionally only running on mount (make sure it's only mounted once :))\n  // if the connection worked, wait until we get confirmation of that to flip the flag\n\n  useEffect(() => {\n    if (!tried && active) {\n      setTried(true);\n    }\n  }, [tried, active]);\n  return tried;\n}\nexport function useInactiveListener(suppress = false) {\n  const {\n    active,\n    error,\n    activate\n  } = useWeb3React();\n  useEffect(() => {\n    const {\n      ethereum\n    } = window;\n\n    if (ethereum && ethereum.on && !active && !error && !suppress) {\n      const handleConnect = () => {\n        console.log(\"Handling 'connect' event\");\n        activate(injected);\n      };\n\n      const handleChainChanged = chainId => {\n        console.log(\"Handling 'chainChanged' event with payload\", chainId);\n        activate(injected);\n      };\n\n      const handleAccountsChanged = accounts => {\n        console.log(\"Handling 'accountsChanged' event with payload\", accounts);\n\n        if (accounts.length > 0) {\n          activate(injected);\n        }\n      };\n\n      const handleNetworkChanged = networkId => {\n        console.log(\"Handling 'networkChanged' event with payload\", networkId);\n        activate(injected);\n      };\n\n      ethereum.on('connect', handleConnect);\n      ethereum.on('chainChanged', handleChainChanged);\n      ethereum.on('accountsChanged', handleAccountsChanged);\n      ethereum.on('networkChanged', handleNetworkChanged);\n      return () => {\n        if (ethereum.removeListener) {\n          ethereum.removeListener('connect', handleConnect);\n          ethereum.removeListener('chainChanged', handleChainChanged);\n          ethereum.removeListener('accountsChanged', handleAccountsChanged);\n          ethereum.removeListener('networkChanged', handleNetworkChanged);\n        }\n      };\n    }\n  }, [active, error, suppress, activate]);\n}","map":{"version":3,"sources":["/home/jsw/code/codeoneline/web3-react/example/hooks.ts"],"names":["useState","useEffect","useWeb3React","injected","useEagerConnect","activate","active","tried","setTried","isAuthorized","then","undefined","catch","useInactiveListener","suppress","error","ethereum","window","on","handleConnect","console","log","handleChainChanged","chainId","handleAccountsChanged","accounts","length","handleNetworkChanged","networkId","removeListener"],"mappings":"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","sourcesContent":["import { useState, useEffect } from 'react'\nimport { useWeb3React } from '@web3-react-wan/core'\n\nimport { injected } from './connectors'\n\nexport function useEagerConnect() {\n  const { activate, active } = useWeb3React()\n\n  const [tried, setTried] = useState(false)\n\n  useEffect(() => {\n    injected.isAuthorized().then((isAuthorized: boolean) => {\n      if (isAuthorized) {\n        activate(injected, undefined, true).catch(() => {\n          setTried(true)\n        })\n      } else {\n        setTried(true)\n      }\n    })\n  }, []) // intentionally only running on mount (make sure it's only mounted once :))\n\n  // if the connection worked, wait until we get confirmation of that to flip the flag\n  useEffect(() => {\n    if (!tried && active) {\n      setTried(true)\n    }\n  }, [tried, active])\n\n  return tried\n}\n\nexport function useInactiveListener(suppress: boolean = false) {\n  const { active, error, activate } = useWeb3React()\n\n  useEffect((): any => {\n    const { ethereum } = window as any\n    if (ethereum && ethereum.on && !active && !error && !suppress) {\n      const handleConnect = () => {\n        console.log(\"Handling 'connect' event\")\n        activate(injected)\n      }\n      const handleChainChanged = (chainId: string | number) => {\n        console.log(\"Handling 'chainChanged' event with payload\", chainId)\n        activate(injected)\n      }\n      const handleAccountsChanged = (accounts: string[]) => {\n        console.log(\"Handling 'accountsChanged' event with payload\", accounts)\n        if (accounts.length > 0) {\n          activate(injected)\n        }\n      }\n      const handleNetworkChanged = (networkId: string | number) => {\n        console.log(\"Handling 'networkChanged' event with payload\", networkId)\n        activate(injected)\n      }\n\n      ethereum.on('connect', handleConnect)\n      ethereum.on('chainChanged', handleChainChanged)\n      ethereum.on('accountsChanged', handleAccountsChanged)\n      ethereum.on('networkChanged', handleNetworkChanged)\n\n      return () => {\n        if (ethereum.removeListener) {\n          ethereum.removeListener('connect', handleConnect)\n          ethereum.removeListener('chainChanged', handleChainChanged)\n          ethereum.removeListener('accountsChanged', handleAccountsChanged)\n          ethereum.removeListener('networkChanged', handleNetworkChanged)\n        }\n      }\n    }\n  }, [active, error, suppress, activate])\n}\n"]},"metadata":{},"sourceType":"module"}