Update src/components/theme/ThemeProvider.js

This commit is contained in:
2026-01-20 13:59:49 +00:00
parent c39e6f2456
commit 918f68e48f

View File

@@ -1,4 +1,4 @@
import React, { createContext, useContext, useState } from 'react';
import React, { createContext, useContext, useState, useEffect } from 'react';
const ThemeContext = createContext();
@@ -10,20 +10,32 @@ export const useTheme = () => {
return context;
};
function ThemeProvider({ children }) {
export const ThemeProvider = ({ children }) => {
const [theme, setTheme] = useState('light');
useEffect(() => {
const savedTheme = localStorage.getItem('theme');
if (savedTheme) {
setTheme(savedTheme);
}
}, []);
const toggleTheme = () => {
setTheme(prevTheme => prevTheme === 'light' ? 'dark' : 'light');
const newTheme = theme === 'light' ? 'dark' : 'light';
setTheme(newTheme);
localStorage.setItem('theme', newTheme);
};
const value = {
theme,
toggleTheme,
};
return (
<ThemeContext.Provider value={{ theme, toggleTheme }}>
<ThemeContext.Provider value={value}>
<div className={theme}>
{children}
</div>
</ThemeContext.Provider>
);
}
export default ThemeProvider;
};