Repository for the Bootcamp 23.1 challenge
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

31 lines
711 B

import { useEffect } from 'react';
import PropTypes from 'prop-types';
import ReactGA from 'react-ga';
const logPageChange = (pathname, search = '', options) => {
const page = pathname + search;
const { location } = window;
ReactGA.set({
page,
location: `${location.origin}${page}`,
...options
});
ReactGA.pageview(page);
};
function Analytics({ location, options }) {
useEffect(() => {
logPageChange(location.pathname, location.search, options);
}, [location, options]);
return null;
}
Analytics.propTypes = {
location: PropTypes.shape({
pathname: PropTypes.string,
search: PropTypes.string
}).isRequired,
options: PropTypes.object
};
export default Analytics;