|
"use client" |
|
|
|
import { useState, useEffect } from 'react' |
|
import { ThemeProvider } from '@mui/material/styles' |
|
import CssBaseline from '@mui/material/CssBaseline' |
|
import { CacheProvider } from '@emotion/react' |
|
import createEmotionCache from '@/lib/createEmotionCache' |
|
import { theme } from '@/theme' |
|
|
|
const clientSideEmotionCache = createEmotionCache() |
|
|
|
export default function Providers({ children }: { children: React.ReactNode }) { |
|
const [mounted, setMounted] = useState(false) |
|
|
|
useEffect(() => { |
|
setMounted(true) |
|
}, []) |
|
|
|
if (!mounted) { |
|
return null |
|
} |
|
|
|
return ( |
|
<CacheProvider value={clientSideEmotionCache}> |
|
<ThemeProvider theme={theme}> |
|
<CssBaseline /> |
|
{children} |
|
</ThemeProvider> |
|
</CacheProvider> |
|
) |
|
} |