import React from "react" import ReactDOM from "react-dom/client" import { BrowserRouter, Navigate, Route, Routes, useLocation, useNavigate } from "react-router-dom" import { CssBaseline, ThemeProvider } from "@mui/material" import Faq from "./pages/Faq/Faq" import Wallet from "./pages/Wallet" import Payment from "./pages/Payment/Payment" import QuizPayment from "./pages/QuizPayment/QuizPayment" import Support from "./pages/Support/Support" import AccountSettings from "./pages/AccountSettings/AccountSettings" import Landing from "./pages/Landing/Landing" import Tariffs from "./pages/Tariffs/Tariffs" import SigninDialog from "./pages/auth/Signin" import SignupDialog from "./pages/auth/Signup" import RecoverDialog from "./pages/auth/Recover" import History from "./pages/History" import Cart from "./pages/Cart/Cart" import TariffPage from "./pages/Tariffs/TariffsPage" import SavedTariffs from "./pages/SavedTariffs" import PrivateRoute from "@root/utils/routes/ProtectedRoute" import reportWebVitals from "./reportWebVitals" import { SnackbarProvider, enqueueSnackbar } from "notistack" import "./index.css" import ProtectedLayout from "./components/ProtectedLayout" import { clearUserData, setUser, setUserAccount, useUserStore } from "./stores/user" import TariffConstructor from "./pages/TariffConstructor/TariffConstructor" import { clearAuthToken, getMessageFromFetchError, useUserAccountFetcher, useUserFetcher } from "@frontend/kitui" import { pdfjs } from "react-pdf" import { theme } from "./utils/theme" import PPofData from "@root/docs/PPofData" import Docs from "@root/docs/docs" import Oferta from "@root/docs/content/oferta" import PrivacyPolicy from "@root/docs/content/PrivacyPolicy" import RecoverPassword from "@root/pages/auth/RecoverPassword" import OutdatedLink from "@root/pages/auth/OutdatedLink" pdfjs.GlobalWorkerOptions.workerSrc = new URL("pdfjs-dist/build/pdf.worker.min.js", import.meta.url).toString() const App = () => { console.log("render app") const location = useLocation() const userId = useUserStore((state) => state.userId) const navigate = useNavigate() useUserFetcher({ url: process.env.REACT_APP_DOMAIN + `/user/${userId}`, userId, onNewUser: setUser, onError: (error) => { const errorMessage = getMessageFromFetchError(error) if (errorMessage) { enqueueSnackbar(errorMessage) clearUserData() clearAuthToken() } }, }) useUserAccountFetcher({ url: process.env.REACT_APP_DOMAIN + "/customer/account", userId, onNewUserAccount: setUserAccount, onError: (error) => { const errorMessage = getMessageFromFetchError(error) if (errorMessage) { enqueueSnackbar(errorMessage) clearUserData() clearAuthToken() navigate("/signin") } }, }) console.log(location) if (location.state?.redirectTo) return return ( <> {location.state?.backgroundLocation && ( } /> } /> } /> } /> } /> )} } /> } /> } /> } /> } /> } /> }> }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> }/> } /> }> }/> }/> ) } const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement) root.render( // // ) // If you want to start measuring performance in your app, pass a function // to log results (for example: reportWebVitals(console.log)) // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals reportWebVitals()