create-ex-den-kit
Version:
Create exam projects with Ex-Den-Kit
35 lines (27 loc) • 939 B
JSX
import React, { createContext, useState, useContext, useEffect } from 'react';
import { getCurrentTheme, setCurrentTheme, getThemeConfig } from '../config/themes';
const ThemeContext = createContext({});
export const useTheme = () => useContext(ThemeContext);
export const ThemeProvider = ({ children }) => {
const [theme, setTheme] = useState(getCurrentTheme());
const [config, setConfig] = useState(getThemeConfig());
useEffect(() => {
document.documentElement.setAttribute('data-theme', theme);
}, [theme]);
const changeTheme = (newTheme) => {
setCurrentTheme(newTheme);
setTheme(newTheme);
setConfig(getThemeConfig());
window.location.reload(); // Перезагружаем для применения новой темы
};
const value = {
theme,
config,
changeTheme,
};
return (
<ThemeContext.Provider value={value}>
{children}
</ThemeContext.Provider>
);
};