(props: AppProps)
| 17 | import 'utilities/posthog'; |
| 18 | |
| 19 | export default function App(props: AppProps) { |
| 20 | const router = useRouter(); |
| 21 | |
| 22 | const { Component, pageProps } = props; |
| 23 | |
| 24 | useEffect(() => { |
| 25 | handlePosthogId(router); |
| 26 | const handleStart = (url: string) => { |
| 27 | NProgress.start(); |
| 28 | }; |
| 29 | const handleStop = () => { |
| 30 | (window as any).posthog?.capture('$pageview'); |
| 31 | NProgress.done(); |
| 32 | }; |
| 33 | |
| 34 | router.events.on('routeChangeStart', handleStart); |
| 35 | router.events.on('routeChangeComplete', handleStop); |
| 36 | router.events.on('routeChangeError', handleStop); |
| 37 | router.beforePopState(({ options }: { options: any }) => { |
| 38 | if (options?._preventNextJSReload) { |
| 39 | return false; |
| 40 | } |
| 41 | return true; |
| 42 | }); |
| 43 | |
| 44 | return () => { |
| 45 | router.events.off('routeChangeStart', handleStart); |
| 46 | router.events.off('routeChangeComplete', handleStop); |
| 47 | router.events.off('routeChangeError', handleStop); |
| 48 | }; |
| 49 | }, [router]); |
| 50 | |
| 51 | return ( |
| 52 | <SessionProvider> |
| 53 | <Head> |
| 54 | <title>Linen Community</title> |
| 55 | <meta |
| 56 | name="viewport" |
| 57 | content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" |
| 58 | /> |
| 59 | <meta |
| 60 | name="google-site-verification" |
| 61 | content="PQcYPgLYmDXcT1ORhCBmPiwKISJnj1UCEbZpQXQPiVU" |
| 62 | /> |
| 63 | {/* Twitter */} |
| 64 | <meta name="twitter:card" content="summary_large_image" key="twcard" /> |
| 65 | <meta name="twitter:creator" content="@linen_dev" key="linen_dev" /> |
| 66 | <meta |
| 67 | name="twitter:image" |
| 68 | content="https://static.main.linendev.com/logos/logo63448d11-cc57-4c35-8b16-5064ebae803c.png" |
| 69 | key="twimage" |
| 70 | /> |
| 71 | </Head> |
| 72 | |
| 73 | <Toast.ToastContext |
| 74 | containerStyle={{ top: '4rem', right: '1rem' }} |
| 75 | position="top-right" |
| 76 | /> |
nothing calls this directly
no test coverage detected