1
0
mirror of https://github.com/oceanprotocol/react.git synced 2025-02-14 21:10:38 +01:00

added networkmonitor

This commit is contained in:
mihaisc 2020-08-10 13:34:54 +03:00
parent 0498e3ae75
commit 16ab666952
4 changed files with 36 additions and 6 deletions

View File

@ -9,6 +9,7 @@ import { ConsumeDdo } from './ConsumeDdo'
import WalletConnectProvider from '@walletconnect/web3-provider' import WalletConnectProvider from '@walletconnect/web3-provider'
import Torus from '@toruslabs/torus-embed' import Torus from '@toruslabs/torus-embed'
import { NetworkMonitor } from './NetworkMonitor'
// factory Address needs to be updated each time you deploy the contract on local network // factory Address needs to be updated each time you deploy the contract on local network
const config = { const config = {
@ -52,8 +53,9 @@ function App() {
}, []) }, [])
return ( return (
<OceanProvider config={configRinkeby} web3ModalOpts={web3ModalOpts}> <OceanProvider initialConfig={configRinkeby} web3ModalOpts={web3ModalOpts}>
<div className="container"> <div className="container">
<NetworkMonitor/>
<div> <div>
<Wallet /> <Wallet />
</div> </div>

View File

@ -0,0 +1,29 @@
import React from 'react'
import { useOcean } from '@oceanprotocol/react'
import { ConfigHelper } from '@oceanprotocol/lib'
import { useEffect } from 'react'
export function NetworkMonitor() {
const { connect, web3Provider } = useOcean()
const handleNetworkChanged = () => {
// const config = getOceanConfig(chainId)
const config = new ConfigHelper().getConfig('rinkeby')
connect(config)
}
useEffect(() => {
if (!web3Provider) return
web3Provider.on('chainChanged', handleNetworkChanged)
return () => {
web3Provider.removeListener('chainChanged', handleNetworkChanged)
}
}, [web3Provider])
return (
<>
</>
)
}

View File

@ -59,7 +59,7 @@ function useMetadata(did?: DID | string): UseMetadata {
setTitle(metadata.main.name) setTitle(metadata.main.name)
} }
init() init()
}, []) }, [ocean])
return { return {
ddo, ddo,

View File

@ -38,12 +38,10 @@ const OceanContext = createContext(null)
function OceanProvider({ function OceanProvider({
initialConfig, initialConfig,
web3ModalOpts, web3ModalOpts,
handleNetworkChanged,
children children
}: { }: {
initialConfig: Config initialConfig: Config
web3ModalOpts?: Partial<ICoreOptions> web3ModalOpts?: Partial<ICoreOptions>
handleNetworkChanged: (networkId: string | number) => Promise<void>
children: any children: any
}): ReactElement { }): ReactElement {
const [web3, setWeb3] = useState<Web3 | undefined>() const [web3, setWeb3] = useState<Web3 | undefined>()
@ -148,11 +146,11 @@ function OceanProvider({
if (web3Provider !== undefined && web3Provider !== null) { if (web3Provider !== undefined && web3Provider !== null) {
web3Provider.on('accountsChanged', handleAccountsChanged) web3Provider.on('accountsChanged', handleAccountsChanged)
web3Provider.on('chainChanged', handleNetworkChanged) // web3Provider.on('chainChanged', handleNetworkChanged)
return () => { return () => {
web3Provider.removeListener('accountsChanged', handleAccountsChanged) web3Provider.removeListener('accountsChanged', handleAccountsChanged)
web3Provider.removeListener('chainChanged', handleNetworkChanged) // web3Provider.removeListener('chainChanged', handleNetworkChanged)
} }
} }
}, [web3Modal, web3Provider]) }, [web3Modal, web3Provider])
@ -175,6 +173,7 @@ function OceanProvider({
logout, logout,
refreshBalance refreshBalance
} as OceanProviderValue } as OceanProviderValue
} }
> >
{children} {children}