Files
Portfolio/src/context/ThemeContext.js

26 lines
699 B
JavaScript

import React, { createContext, useState, useContext } from 'react';
const ThemeContext = createContext();
export const ThemeProvider = ({ children }) => {
const [isDarkMode, setIsDarkMode] = useState(true);
const toggleTheme = () => {
setIsDarkMode(!isDarkMode);
document.documentElement.setAttribute('data-theme', !isDarkMode ? 'dark' : 'light');
};
return (
<ThemeContext.Provider value={{ isDarkMode, toggleTheme }}>
{children}
</ThemeContext.Provider>
);
};
export const useTheme = () => {
const context = useContext(ThemeContext);
if (context === undefined) {
throw new Error('useTheme must be used within a ThemeProvider');
}
return context;
};