* Tracks: Record page views on route changes.

* adjust regex.
This commit is contained in:
Timmy Crawford 2018-09-19 11:23:05 -07:00 committed by GitHub
parent daa3bdcf3c
commit b13d0bd2ac
1 changed files with 36 additions and 0 deletions

View File

@ -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 (