1
0
mirror of https://github.com/oceanprotocol/commons.git synced 2023-03-15 18:03:00 +01:00
commons/client/src/hoc/withTracker.tsx

34 lines
821 B
TypeScript
Raw Normal View History

2019-04-15 15:44:02 +02:00
import React, { useEffect } from 'react'
import ReactGA, { FieldsObject } from 'react-ga'
import { RouteComponentProps } from 'react-router-dom'
2019-04-15 21:08:49 +02:00
import { analyticsId } from '../config'
2019-04-15 15:44:02 +02:00
2019-05-16 11:39:25 +02:00
ReactGA.initialize(analyticsId, {
testMode: process.env.NODE_ENV === 'test',
debug: false
})
2019-04-15 15:44:02 +02:00
const withTracker = <P extends RouteComponentProps>(
WrappedComponent: any,
options: FieldsObject = {}
) => {
const trackPage = (page: string) => {
options.isWeb3 = window.web3 !== undefined
ReactGA.set({ page, ...options })
ReactGA.pageview(page)
}
const HOC = (props: P) => {
useEffect(() => trackPage(props.location.pathname), [
props.location.pathname
])
return <WrappedComponent {...props} />
}
return HOC
}
export default withTracker