pages/_app.tsx (30 lines of code) (raw):
import { AppProps } from "next/app";
import Router from "next/router";
import { useEffect } from "react";
import { Provider as StyletronProvider } from "styletron-react";
import { BaseProvider } from "baseui";
import { styletron, debug } from "../lib/styletron";
import Layout from "../components/layout";
import * as gtag from "../lib/gtag";
import { lightTheme } from "../lib/theme";
import "../styles.css";
function App({ Component, pageProps }: AppProps) {
useEffect(() => {
const handleRouteChange = (url) => {
gtag.pageview(url);
};
Router.events.on("routeChangeComplete", handleRouteChange);
return () => {
Router.events.off("routeChangeComplete", handleRouteChange);
};
}, []);
return (
<div>
<StyletronProvider value={styletron} debug={debug} debugAfterHydration>
<BaseProvider theme={lightTheme} zIndex={2}>
<Layout {...pageProps}>
<Component {...pageProps} />
</Layout>
</BaseProvider>
</StyletronProvider>
</div>
);
}
export default App;