1
0
mirror of https://github.com/oceanprotocol/react.git synced 2024-12-01 21:47:19 +01:00
react/example/src/NetworkMonitor.tsx

42 lines
979 B
TypeScript
Raw Normal View History

2020-09-04 11:24:11 +02:00
import React, { useCallback } from 'react'
2020-08-10 12:34:54 +02:00
import { useOcean } from '@oceanprotocol/react'
import { ConfigHelper } from '@oceanprotocol/lib'
import { useEffect } from 'react'
2020-09-04 11:24:11 +02:00
export const NetworkMonitor = () => {
2020-08-11 09:30:27 +02:00
const { connect, web3Provider } = useOcean()
2020-08-10 12:34:54 +02:00
2020-09-07 13:11:46 +02:00
const handleNetworkChanged = useCallback(
(chainId: number) => {
// const config = getOceanConfig(chainId)
// temp hack
let network = ''
switch (chainId) {
case 1: {
network = 'mainnet'
break
}
case 4: {
network = 'rinkeby'
break
}
2020-08-11 12:15:20 +02:00
}
2020-09-07 13:11:46 +02:00
const config = new ConfigHelper().getConfig(network)
connect(config)
},
[connect]
)
2020-09-04 11:24:11 +02:00
2020-08-11 09:30:27 +02:00
useEffect(() => {
if (!web3Provider) return
2020-08-10 12:34:54 +02:00
2020-08-11 09:30:27 +02:00
web3Provider.on('chainChanged', handleNetworkChanged)
2020-08-10 12:34:54 +02:00
2020-08-11 09:30:27 +02:00
return () => {
web3Provider.removeListener('chainChanged', handleNetworkChanged)
}
2020-09-04 11:24:11 +02:00
}, [web3Provider, handleNetworkChanged])
2020-08-10 12:34:54 +02:00
2020-08-11 09:30:27 +02:00
return <></>
2020-08-10 12:34:54 +02:00
}