import { useEffect, lazy } from "react"; import { Route, Routes, HashRouter } from "react-router-dom"; import { Provider } from "react-redux"; import toast from "react-hot-toast"; import { isEqual } from "lodash"; import NotFoundPage from "./404"; // import Welcome from './Welcome' // const HomePage = lazy(() => import("./home")); // const ChatPage = lazy(() => import("./chat")); const RegBasePage = lazy(() => import("./reg")); const RegWithUsernamePage = lazy(() => import("./reg/RegWithUsername")); const SendMagicLinkPage = lazy(() => import("./sendMagicLink")); const RegPage = lazy(() => import("./reg/Register")); const LoginPage = lazy(() => import("./login")); const OAuthPage = lazy(() => import("./oauth")); const UsersPage = lazy(() => import("./users")); const CallbackPage = lazy(() => import("./callback")); const FavoritesPage = lazy(() => import("./favs")); const OnboardingPage = lazy(() => import("./onboarding")); const SettingChannelPage = lazy(() => import("./settingChannel")); const SettingDMPage = lazy(() => import("./settingDM")); const SettingPage = lazy(() => import("./setting")); const ResourceManagement = lazy(() => import("./resources")); const GuestLogin = lazy(() => import("./guest")); const ChatPage = lazy(() => import("./chat")); const HomePage = lazy(() => import("./home")); import RequireAuth from "../common/component/RequireAuth"; import RequireNoAuth from "../common/component/RequireNoAuth"; import Meta from "../common/component/Meta"; import LazyIt from './lazy'; import store, { useAppSelector } from "../app/store"; import useDeviceToken from "../common/component/Notification/useDeviceToken"; import { vapidKey } from "../app/config"; import RequireSingleTab from "../common/component/RequireSingleTab"; import InvitePrivate from "./invitePrivate"; let toastId: string; const PageRoutes = () => { const { ui: { online }, fileMessages } = useAppSelector((store) => { return { ui: store.ui, fileMessages: store.fileMessage }; }, isEqual); // 提前获取device token useDeviceToken(vapidKey); // 掉线检测 useEffect(() => { if (!online) { toastId = toast.error("Network Offline!", { duration: Infinity }); } else if (toastId) { toast.dismiss(toastId); } }, [online]); return ( } /> } /> } /> } /> } /> } /> } > } /> } /> } /> } /> {/* 只允许活跃一个tab标签 */} } > } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } > } > } /> ); }; export default function ReduxRoutes() { return ( ); }