// @ts-nocheck // ^ type checking causes a bunch of issues in DefaultSeo, BE CAREFUL import { useEffect } from "react"; import { useRouter } from "next/router"; import Script from "next/script"; import type { AppProps } from "next/app"; import { DefaultSeo, SocialProfileJsonLd } from "next-seo"; import * as config from "../lib/config"; import meJpg from "../public/static/images/me.jpg"; import faviconIco from "../public/static/images/favicon.ico"; import appleTouchIconPng from "../public/static/images/apple-touch-icon.png"; import "../styles/index.scss"; export default function App({ Component, pageProps }: AppProps) { const router = useRouter(); useEffect(() => { // https://nextjs.org/docs/messages/next-script-for-ga // https://developers.google.com/analytics/devguides/collection/gtagjs/single-page-applications#measure_virtual_pageviews const handlePageview = (url: string) => { if (typeof window.gtag === "function") { window.gtag("set", "page_path", url); window.gtag("event", "page_view"); } }; router.events.on("routeChangeComplete", handlePageview); return () => { router.events.off("routeChangeComplete", handlePageview); }; }, [router.events]); return ( <> {/* Inline script to restore light/dark theme preference ASAP */} ); }