Files
aman-frontend/src/contexts/themecontext.tsx
2022-11-05 01:44:37 +01:00

41 lines
1.2 KiB
TypeScript

import React, { Dispatch, SetStateAction, useRef, useState } from 'react';
import { Session } from '../services';
// TODO dynamic theming
import 'primereact/resources/themes/bootstrap4-dark-blue/theme.css';
import 'primereact/resources/primereact.min.css';
import "primeicons/primeicons.css";
import "primeflex/primeflex.css"
const ThemeContext = React.createContext<{
darkMode: boolean;
setDarkMode: Dispatch<SetStateAction<boolean>>;
}>({ darkMode: false, setDarkMode: () => false });
export const ThemeProvider = ({ children }: { children: any }) => {
const [darkMode, setDarkMode] = useState<boolean>(Session.theme() === 'dark');
const refDarkMode = useRef<boolean>();
refDarkMode.current = darkMode;
//useEffect(() => {
// Session.setTheme(refDarkMode.current ? 'dark' : 'light');
// window.location.reload();
//}, [darkMode]);
//if (darkMode) {
// import('primereact/resources/themes/bootstrap4-dark-blue/theme.css');
//} else {
// import('primereact/resources/themes/bootstrap4-light-blue/theme.css');
//}
return (
<>
<ThemeContext.Provider value={{ darkMode, setDarkMode }}>
{children}
</ThemeContext.Provider>
</>
);
};
export default ThemeContext;