import { Suspense, lazy } from "react"; import { Navigate, Route, Routes, useLocation } from "react-router-dom"; import AppLayout from "@/layouts/AppLayout"; import { useAuth } from "@/hooks/useAuth"; import { menuRoutes,extraRoutes } from "./routes"; const Login = lazy(() => import("@/pages/auth/login")); const ResetPassword = lazy(() => import("@/pages/auth/reset-password")); const PublicDeviceMeetingCreate = lazy(() => import("@/pages/business/PublicDeviceMeetingCreate")); function RouteFallback() { let platformName = "iMeeting"; try { const configStr = sessionStorage.getItem("platformConfig"); if (configStr) { const config = JSON.parse(configStr); if (config.projectName) { platformName = config.projectName; } } } catch (e) { // ignore } return (
{platformName}
A.I. ENGINE INITIALIZING
); } function RequireAuth({ children }: { children: JSX.Element }) { const { isAuthed, profile } = useAuth(); const location = useLocation(); if (!isAuthed) { const redirect = encodeURIComponent(`${location.pathname}${location.search}`); return ; } if (profile?.pwdResetRequired === 1) { return ; } return children; } export default function AppRoutes() { return ( }> } /> } /> } /> } > {menuRoutes.map((route) => ( ))} {extraRoutes && extraRoutes.map((route) => ( ))} } /> ); }