import React, { useEffect } from 'react' import { Icon } from 'UI' import { connect } from 'react-redux' import { withRouter } from 'react-router-dom'; import { onboarding as onboardingRoute } from 'App/routes' import { withSiteId } from 'App/routes'; import { isGreaterOrEqualVersion } from 'App/utils' const TrackerUpdateMessage= (props) => { const [needUpdate, setNeedUpdate] = React.useState(false) const { sites, match: { params: { siteId } } } = props; const activeSite = sites.find(s => s.id == siteId); useEffect(() => { if (!activeSite || !activeSite.trackerVersion) return; const isLatest = isGreaterOrEqualVersion(activeSite.trackerVersion, window.ENV.TRACKER_VERSION); if (!isLatest && activeSite.recorded) { setNeedUpdate(true) } }, [activeSite]) return needUpdate ? ( <> {(
There might be a mismatch between the tracker and the backend versions. Please make sure to props.history.push(withSiteId(onboardingRoute('installing'), siteId))}>update the tracker to latest version ({window.ENV.TRACKER_VERSION}).
)} ) : '' } export default connect(state => ({ site: state.getIn([ 'site', 'instance' ]), sites: state.getIn([ 'site', 'list' ]) }))(withRouter(TrackerUpdateMessage))