import React, { ReactNode, useState } from 'react'; import Head from 'next/head'; import { useIsomorphicLayoutEffect } from 'usehooks-ts'; import { useGrowiTheme } from '~/stores/context'; import { ColorScheme, useNextThemes } from '~/stores/use-next-themes'; import loggerFactory from '~/utils/logger'; import { ThemeProvider } from '../Theme/utils/ThemeProvider'; const logger = loggerFactory('growi:cli:RawLayout'); type Props = { title?: string, className?: string, children?: ReactNode, } export const RawLayout = ({ children, title, className }: Props): JSX.Element => { const classNames: string[] = ['wrapper']; if (className != null) { classNames.push(className); } const { data: growiTheme } = useGrowiTheme(); // get color scheme from next-themes const { resolvedTheme, resolvedThemeByAttributes } = useNextThemes(); const [colorScheme, setColorScheme] = useState(undefined); // set colorScheme in CSR useIsomorphicLayoutEffect(() => { setColorScheme(resolvedTheme ?? resolvedThemeByAttributes); }, [resolvedTheme]); return ( <> {title}
{children}
); };