@@ -5,22 +5,39 @@ if (typeof window === 'undefined') {
55
66import "../styles/base.scss" ;
77import { useState , useEffect } from "react" ;
8+ import { useRouter } from "next/router" ;
89
910import SelectedContext from "../ctx/SelectedContext" ;
1011
1112import { checkTheme } from "../utils/helpers" ;
13+ import { trackPageLoaded } from "../utils/gtm" ;
1214import Nav from "../components/Nav" ;
1315import SelectionBar from "../components/SelectionBar" ;
1416import PopularContext from "../ctx/PopularContext" ;
1517import { SessionProvider } from "next-auth/react" ;
1618
1719function winstall ( { Component, pageProps : { session, ...pageProps } } ) {
20+ const router = useRouter ( ) ;
21+
1822 const [ selectedApps , setSelectedApps ] = useState ( [ ] ) ;
1923 const selectedAppValue = { selectedApps, setSelectedApps } ;
2024
2125 const [ popular , setPopular ] = useState ( [ ] ) ;
2226 const popularApps = { popular, setPopular } ;
2327
28+ useEffect ( ( ) => {
29+ // Track page views on route change
30+ const handleRouteChange = ( url ) => {
31+ trackPageLoaded ( url ) ;
32+ } ;
33+
34+ router . events . on ( "routeChangeComplete" , handleRouteChange ) ;
35+
36+ return ( ) => {
37+ router . events . off ( "routeChangeComplete" , handleRouteChange ) ;
38+ } ;
39+ } , [ router . events ] ) ;
40+
2441 useEffect ( ( ) => {
2542 checkTheme ( ) ;
2643
0 commit comments