Spaces:
Running
Running
| // components/ThemeProviderWrapper.jsx | |
| import React, { useMemo, useState, createContext } from 'react'; | |
| import { ThemeProvider, createTheme, CssBaseline } from '@mui/material'; | |
| export const ColorModeContext = createContext({ toggleColorMode: () => {} }); | |
| export default function ThemeProviderWrapper({ children }) { | |
| const [mode, setMode] = useState('light'); | |
| const colorMode = useMemo(() => ({ | |
| toggleColorMode: () => { | |
| setMode(prev => (prev === 'light' ? 'dark' : 'light')); | |
| } | |
| }), []); | |
| const theme = useMemo(() => | |
| createTheme({ | |
| palette: { | |
| mode, | |
| primary: { main: '#1976d2' }, | |
| secondary: { main: '#9c27b0' } | |
| } | |
| }), [mode]); | |
| return ( | |
| <ColorModeContext.Provider value={colorMode}> | |
| <ThemeProvider theme={theme}> | |
| <CssBaseline /> | |
| {children} | |
| </ThemeProvider> | |
| </ColorModeContext.Provider> | |
| ); | |
| } | |