Files
Checkmate/Client/src/App.jsx
T

54 lines
1.6 KiB
React
Raw Normal View History

import { useEffect } from "react";
import { useSelector } from "react-redux";
import { useDispatch } from "react-redux";
import "react-toastify/dist/ReactToastify.css";
import { ToastContainer } from "react-toastify";
2024-08-28 22:14:55 -04:00
import { ThemeProvider } from "@emotion/react";
import lightTheme from "./Utils/Theme/lightTheme";
import darkTheme from "./Utils/Theme/darkTheme";
import { CssBaseline, GlobalStyles } from "@mui/material";
2024-10-31 14:49:26 -04:00
import { getAppSettings } from "./Features/Settings/settingsSlice";
2024-09-27 12:13:39 +08:00
import { logger } from "./Utils/Logger"; // Import the logger
import { networkService } from "./main";
import { Routes } from "./Routes";
function App() {
const mode = useSelector((state) => state.ui.mode);
const { authToken } = useSelector((state) => state.auth);
const dispatch = useDispatch();
2024-09-27 10:55:37 +08:00
useEffect(() => {
if (authToken) {
dispatch(getAppSettings({ authToken }));
}
}, [dispatch, authToken]);
2024-08-28 22:14:55 -04:00
// Cleanup
useEffect(() => {
return () => {
logger.cleanup();
networkService.cleanup();
};
}, []);
2024-09-27 12:13:39 +08:00
return (
/* Extract Themeprovider, baseline and global styles to Styles */
<ThemeProvider theme={mode === "light" ? lightTheme : darkTheme}>
<CssBaseline />
<GlobalStyles
styles={({ palette }) => {
return {
body: {
backgroundImage: `radial-gradient(circle, ${palette.gradient.color1}, ${palette.gradient.color2}, ${palette.gradient.color3}, ${palette.gradient.color4}, ${palette.gradient.color5})`,
2025-01-12 12:28:13 -05:00
color: palette.primary.contrastText,
},
};
}}
/>
<Routes />
<ToastContainer />
</ThemeProvider>
);
}
2024-05-11 22:48:09 +03:30
export default App;