Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | import "@/i18n"; import i18n from "i18next"; import { useEffect, useCallback, Suspense } from "react"; import { BrowserRouter } from "react-router-dom"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { ToastContainer } from "react-toastify"; import "react-toastify/dist/ReactToastify.css"; import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider"; import { AdapterLuxon } from "@mui/x-date-pickers/AdapterLuxon"; import AppRoutes from "@/appRoutes"; import { Navbar } from "@/components/organisms"; import useUserStore from "@/store/useUserStore"; import ErrorBoundry from "./errorBoundry"; import UseScrollToTop from "./hooks/useScrollToTop"; function App() { const queryClient = new QueryClient(); const { fontStyle } = useUserStore(); const updateBodyFontStyle = useCallback(() => { if (fontStyle === "italic") { document.body.style.fontStyle = "italic"; } else if (fontStyle === "normal") { document.body.style.fontStyle = "normal"; } }, [fontStyle]); const handleDir = useCallback(() => { const direction = i18n.dir(i18n.language); document.documentElement.dir = direction; }, []); useEffect(() => { updateBodyFontStyle(); handleDir(); i18n.on("languageChanged", handleDir); return () => { i18n.off("languageChanged", handleDir); }; }, [updateBodyFontStyle, handleDir]); return ( <Suspense fallback={<div>Loading page...</div>}> <QueryClientProvider client={queryClient}> <LocalizationProvider dateAdapter={AdapterLuxon} adapterLocale="de"> <BrowserRouter> <UseScrollToTop /> <Navbar /> <ToastContainer hideProgressBar={false} theme="dark" /> <ErrorBoundry> <AppRoutes /> </ErrorBoundry> </BrowserRouter> </LocalizationProvider> </QueryClientProvider> </Suspense> ); } export default App; |