Tracks: Record page views on route changes. (https://github.com/woocommerce/woocommerce-admin/pull/452)
* Tracks: Record page views on route changes. * adjust regex.
This commit is contained in:
parent
daa3bdcf3c
commit
b13d0bd2ac
|
@ -6,6 +6,7 @@ import { Component, Fragment } from '@wordpress/element';
|
||||||
import { Router, Route, Switch } from 'react-router-dom';
|
import { Router, Route, Switch } from 'react-router-dom';
|
||||||
import { Slot } from 'react-slot-fill';
|
import { Slot } from 'react-slot-fill';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
import { get } from 'lodash';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal dependencies
|
* Internal dependencies
|
||||||
|
@ -15,8 +16,43 @@ import Header from 'layout/header';
|
||||||
import { Controller, getPages } from './controller';
|
import { Controller, getPages } from './controller';
|
||||||
import history from 'lib/history';
|
import history from 'lib/history';
|
||||||
import Notices from './notices';
|
import Notices from './notices';
|
||||||
|
import { recordPageView } from 'lib/tracks';
|
||||||
|
|
||||||
class Layout extends Component {
|
class Layout extends Component {
|
||||||
|
componentDidMount() {
|
||||||
|
this.recordPageViewTrack();
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidUpdate( prevProps ) {
|
||||||
|
const previousPath = get( prevProps, 'location.pathname' );
|
||||||
|
const currentPath = get( this.props, 'location.pathname' );
|
||||||
|
|
||||||
|
if ( ! previousPath || ! currentPath ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( previousPath !== currentPath ) {
|
||||||
|
this.recordPageViewTrack();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
recordPageViewTrack() {
|
||||||
|
const pathname = get( this.props, 'location.pathname' );
|
||||||
|
if ( ! pathname ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove leading slash, and camel case remaining pathname
|
||||||
|
let path = pathname.substring( 1 ).replace( /\//g, '_' );
|
||||||
|
|
||||||
|
// When pathname is `/` we are on the dashboard
|
||||||
|
if ( path.length === 0 ) {
|
||||||
|
path = 'dashboard';
|
||||||
|
}
|
||||||
|
|
||||||
|
recordPageView( path );
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { isEmbeded, ...restProps } = this.props;
|
const { isEmbeded, ...restProps } = this.props;
|
||||||
return (
|
return (
|
||||||
|
|
Loading…
Reference in New Issue