diff --git a/src/App.tsx b/src/App.tsx index 33c114d..1e0b6fb 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -3,21 +3,26 @@ import { BrowserRouter, Routes, Route } from 'react-router-dom'; import { Auth, Login, Logout, NavBar, Overview } from './components'; import { AuthProvider, TimeProvider } from './contexts'; import './App.css'; +import { Airport } from './components/airport'; +import { ThemeProvider } from './contexts/themecontext'; const App: React.FC = () => ( <> - - - - - } /> - } /> - } /> - } /> - - - + + + + + + } /> + } /> + } /> + } /> + } /> + + + + ); diff --git a/src/contexts/themecontext.tsx b/src/contexts/themecontext.tsx new file mode 100644 index 0000000..bae36b3 --- /dev/null +++ b/src/contexts/themecontext.tsx @@ -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>; +}>({ darkMode: false, setDarkMode: () => false }); + +export const ThemeProvider = ({ children }: { children: any }) => { + const [darkMode, setDarkMode] = useState(Session.theme() === 'dark'); + const refDarkMode = useRef(); + 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 ( + <> + + {children} + + + ); +}; + +export default ThemeContext; diff --git a/src/index.tsx b/src/index.tsx index f22ed92..032464f 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -4,12 +4,6 @@ import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; -import 'primereact/resources/themes/lara-light-blue/theme.css'; -import 'primereact/resources/primereact.min.css'; -import "primeicons/primeicons.css"; -import "primeflex/primeflex.css" - - const root = ReactDOM.createRoot( document.getElementById('root') as HTMLElement );