import React from 'react' import { initKea, wrapElement } from './kea' import './src/styles/global.css' import { Provider as ToastProvider } from './src/context/Toast' import { RouteUpdateArgs } from 'gatsby' import { UserProvider } from './src/hooks/useUser' import Wrapper from './src/components/Wrapper' import { Provider } from './src/context/App' initKea(false) export const wrapRootElement = ({ element }) => ( {wrapElement({ element })} ) export const onRouteUpdate = ({ location, prevLocation }: RouteUpdateArgs) => { // This is checked and set on initial load in the body script set in gatsby-ssr.js // Checking for prevLocation prevents this from happening twice if (typeof window !== 'undefined' && prevLocation) { var theme = (window as any).__theme document.body.className = theme } if (window?.posthog) { if (prevLocation) { window.posthog.capture('$pageleave', { $host: prevLocation.host, $pathname: prevLocation.pathname, $current_url: prevLocation.href, }) } window?.posthog?.capture('$pageview') } } export const wrapPageElement = ({ element, props: { location } }) => { return ( ) }