import { Routes, Route, useNavigate, useLocation } from "react-router"; // import MainPage from "./pages/MainPage"; import SearchPage from "./pages/SearchPage"; import PageBody from "./pages/PageBody"; import BookPage from "./pages/BookPage"; import AccountPage from "./pages/account/AccountPage"; import AuthPage from "./pages/AuthPage"; // import { argbFromHex, themeFromSourceColor, applyTheme, } from "@material/material-color-utilities"; import axios from "axios"; import { useEffect, useState } from "react"; import Reader from "./pages/Reader"; import Offline from "./pages/Offline"; import { ToastContainer } from "react-toastify"; import "react-toastify/dist/ReactToastify.css"; import NotFound from "./pages/NotFound"; import Collections from "./pages/account/Collections"; import Main from "./pages/account/Main"; import CollectionPage from "./pages/account/CollectionPage"; import OOBE from "./pages/OOBE/OOBE"; import OOBEWelcome from "./pages/OOBE/OOBEWelcome"; import OOBECreateUser from "./pages/OOBE/OOBECreateUser"; import UploadBook from "./pages/account/UploadBook"; import ShelvePage from "./pages/account/ShelvePage"; const PWAPage = () => { const navigate = useNavigate(); useEffect(() => { let lastReadBook = localStorage.getItem("lastReadBook"); if (lastReadBook !== null) { navigate(`/reader/${lastReadBook}`); } else { navigate("/account"); } }); return <>; }; function App() { const [checked, setChecked] = useState(false); const theme = themeFromSourceColor(argbFromHex("ffddaf")); const systemDark = window.matchMedia("(prefers-color-scheme: dark)").matches; applyTheme(theme, { target: document.body, dark: systemDark }); const navigate = useNavigate(); const location = useLocation(); useEffect(() => { axios .get("/ping", { timeout: 5000 }) .then(() => { window.onLine = true; setChecked(true); }) .catch((error) => { if (error.response === undefined) { window.onLine = false; } else { if (error.response.status === 401) { window.onLine = true; if ( location.pathname !== "/login" && !location.pathname.startsWith("/oobe") ) { console.log("redir"); navigate(`/login?to=${location.pathname}`); } } else { window.onLine = false; } } setChecked(true); }); }, []); if (!checked) { return проверка соединения с сервером...; } return ( <> } /> } /> }> } /> } /> {/*} />*/} }> }> } /> } /> } /> } /> 404

} /> } /> } /> } /> } /> } /> } />
); } export default App;