CoastalCommitsPastes/client/app/layout.tsx

46 lines
1.2 KiB
TypeScript
Raw Normal View History

2022-11-09 21:38:05 -05:00
import "@styles/globals.css"
import { LayoutWrapper } from "./root-layout-wrapper"
import styles from "@styles/Home.module.css"
import { getSession } from "@lib/server/session"
import ThemeProvider from "@components/theme/ThemeProvider"
import { THEME_COOKIE_NAME } from "@components/theme/theme"
import { useServerTheme } from "@components/theme/ThemeServerContextProvider"
2022-11-09 01:14:43 -05:00
interface RootLayoutProps {
children: React.ReactNode
}
export default async function RootLayout({ children }: RootLayoutProps) {
// TODO: this opts out of SSG
const session = await getSession()
2022-11-09 01:14:43 -05:00
return (
<html lang="en">
<head>
<script
dangerouslySetInnerHTML={{
__html: `
(function() {
var theme = document.cookie
.split('; ')
.find(row => row.startsWith('${THEME_COOKIE_NAME}='))
.split('=')[1];
document.documentElement.setAttribute('data-theme', theme);
})();
2022-11-18 01:36:53 -05:00
`
}}
/>
</head>
<ThemeProvider>
<body className={styles.main}>
<LayoutWrapper
signedIn={Boolean(session?.user)}
isAdmin={session?.user.role === "admin"}
>
{children}
</LayoutWrapper>
2022-11-10 02:11:36 -05:00
</body>
</ThemeProvider>
</html>
2022-11-09 01:14:43 -05:00
)
}