prepare later theme toggle
This commit is contained in:
40
src/contexts/themecontext.tsx
Normal file
40
src/contexts/themecontext.tsx
Normal file
@@ -0,0 +1,40 @@
|
||||
import React, { Dispatch, SetStateAction, useEffect, 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;
|
||||
Reference in New Issue
Block a user