chore: external script work and comments

This commit is contained in:
Sean Norwood 2022-04-04 02:51:16 +00:00
parent a129e737d2
commit 4fa8cd89e2
1 changed files with 12 additions and 7 deletions

View File

@ -2,7 +2,7 @@ import type { AppProps } from "next/app";
import { SessionProvider } from "next-auth/react";
import Script, { ScriptProps } from "next/script";
import "../styles/globals.css";
import "../styles/dark.css";
import "../styles/dark.css"; // TODO: Setup themeing the React way
// TODO: Do these scripts need to be on every page?
@ -10,27 +10,32 @@ type ClientOnlyScriptProps = {
src: string;
} & ScriptProps;
/**
* This wraps next/script and returns early if `window` is not detected
* due to next using SSR
*/
const ClientOnlyScript = ({ src, ...props }: ClientOnlyScriptProps) => {
if (typeof window !== "undefined") {
return <Script src={src} {...props} />;
if (typeof window === "undefined") {
return;
}
return <Script src={src} {...props} />;
};
function MyApp({ Component, pageProps: { session, ...pageProps } }: AppProps) {
return (
<>
<Script
{/* <Script
strategy="lazyOnload"
src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"
/>
/> */}
<Script
onError={(e) => console.log(`Error loading script.js: ${e}`)}
strategy="lazyOnload"
src="/js/script.js"
/>
{/** TODO: Detect casting before loading this */}
<ClientOnlyScript strategy="lazyOnload" src="cast-videos.js" />
{/** TODO: Detect casting before loading this? */}
{/* <ClientOnlyScript strategy="lazyOnload" src="/js/cast-videos.js" /> */}
<SessionProvider session={session}>
<Component {...pageProps} />