Files

75 lines
1.9 KiB
TypeScript
Raw Permalink Normal View History

2026-02-12 19:16:16 +00:00
import { type CSSProperties } from "react";
import { useSelector } 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 { CssBaseline, GlobalStyles } from "@mui/material";
2026-03-02 22:37:58 +00:00
import { SWRConfig } from "swr";
import { Routes } from "./Routes";
2026-02-20 18:13:39 +00:00
import AppLayout from "@/Components/layout/AppLayout";
2026-02-09 23:51:18 +00:00
import type { RootState } from "@/Types/state";
2026-02-20 18:10:43 +00:00
import { lightTheme, darkTheme } from "@/Utils/Theme/Theme";
2026-03-02 22:37:58 +00:00
const swrConfig = {
dedupingInterval: 5000,
revalidateOnFocus: false,
revalidateOnReconnect: true,
shouldRetryOnError: false,
errorRetryCount: 2,
errorRetryInterval: 1000,
focusThrottleInterval: 5000,
};
function App() {
2026-02-09 23:51:18 +00:00
const mode = useSelector((state: RootState) => state.ui.mode);
2026-02-20 18:10:43 +00:00
const theme = mode === "light" ? lightTheme : darkTheme;
return (
2026-03-02 22:37:58 +00:00
<SWRConfig value={swrConfig}>
<ThemeProvider theme={theme}>
<CssBaseline />
<GlobalStyles
styles={{
body: {
backgroundColor: theme.palette.background.default,
},
".Toastify__progress-bar": {
2026-04-26 01:32:05 -04:00
height: 2,
bottom: 0,
top: "auto",
},
".Toastify__progress-bar--bg": {
display: "none",
},
2026-03-02 22:37:58 +00:00
}}
/>
<AppLayout>
<Routes />
</AppLayout>
<ToastContainer
newestOnTop={true}
theme={mode}
2026-04-26 01:32:05 -04:00
icon={false}
2026-03-02 22:37:58 +00:00
style={
{
"--toastify-color-progress-light": theme.palette.primary.main,
"--toastify-color-progress-dark": theme.palette.primary.main,
2026-04-26 01:32:05 -04:00
"--toastify-toast-min-height": "40px",
"--toastify-toast-padding": "8px 12px",
"--toastify-toast-width": "auto",
2026-03-02 22:37:58 +00:00
} as CSSProperties
}
toastStyle={{
minHeight: 40,
padding: "8px 12px",
width: "auto",
maxWidth: "min(560px, calc(100vw - 32px))",
}}
2026-04-26 01:32:05 -04:00
progressStyle={{ height: 2 }}
2026-03-02 22:37:58 +00:00
/>
</ThemeProvider>
</SWRConfig>
);
}
2024-05-11 22:48:09 +03:30
export default App;