27 lines
730 B
TypeScript
27 lines
730 B
TypeScript
import { useEffect } from 'react';
|
|
import { useLocation } from 'react-router-dom';
|
|
|
|
import usePrevious from '~/hooks/usePrevious';
|
|
|
|
import { useEventTracker } from './useEventTracker';
|
|
|
|
export function useTrackPageView() {
|
|
const location = useLocation();
|
|
const previousLocation = usePrevious(location);
|
|
const eventTracker = useEventTracker();
|
|
|
|
useEffect(() => {
|
|
// Avoid lot of pageview events enven if the location is the same
|
|
if (
|
|
!previousLocation?.pathname ||
|
|
previousLocation?.pathname !== location.pathname
|
|
) {
|
|
eventTracker('pageview', {
|
|
location: {
|
|
pathname: location.pathname,
|
|
},
|
|
});
|
|
}
|
|
}, [location, eventTracker, previousLocation?.pathname]);
|
|
}
|