import React, { lazy, Suspense } from "react"; import { Routes, Route } from "react-router-dom"; import { I18nextProvider } from "react-i18next"; import { ContextWrapper } from "@/AuthContext"; import PrivateRoute, { AdminRoute, ManagerRoute, } from "@/components/PrivateRoute"; import { ToastContainer } from "react-toastify"; import "react-toastify/dist/ReactToastify.css"; import Login from "@/pages/Login"; import SimpleSSOPassthrough from "@/pages/Login/SSO/simple"; import OnboardingFlow from "@/pages/OnboardingFlow"; import i18n from "./i18n"; import { PfpProvider } from "./PfpContext"; import { LogoProvider } from "./LogoContext"; import { FullScreenLoader } from "./components/Preloader"; import { ThemeProvider } from "./ThemeContext"; import KeyboardShortcutsHelp from "@/components/KeyboardShortcutsHelp"; const Main = lazy(() => import("@/pages/Main")); const InvitePage = lazy(() => import("@/pages/Invite")); const WorkspaceChat = lazy(() => import("@/pages/WorkspaceChat")); const AdminUsers = lazy(() => import("@/pages/Admin/Users")); const AdminInvites = lazy(() => import("@/pages/Admin/Invitations")); const AdminWorkspaces = lazy(() => import("@/pages/Admin/Workspaces")); const AdminLogs = lazy(() => import("@/pages/Admin/Logging")); const AdminAgents = lazy(() => import("@/pages/Admin/Agents")); const GeneralChats = lazy(() => import("@/pages/GeneralSettings/Chats")); const InterfaceSettings = lazy( () => import("@/pages/GeneralSettings/Settings/Interface") ); const BrandingSettings = lazy( () => import("@/pages/GeneralSettings/Settings/Branding") ); const ChatSettings = lazy( () => import("@/pages/GeneralSettings/Settings/Chat") ); const GeneralApiKeys = lazy(() => import("@/pages/GeneralSettings/ApiKeys")); const GeneralLLMPreference = lazy( () => import("@/pages/GeneralSettings/LLMPreference") ); const GeneralTranscriptionPreference = lazy( () => import("@/pages/GeneralSettings/TranscriptionPreference") ); const GeneralAudioPreference = lazy( () => import("@/pages/GeneralSettings/AudioPreference") ); const GeneralEmbeddingPreference = lazy( () => import("@/pages/GeneralSettings/EmbeddingPreference") ); const EmbeddingTextSplitterPreference = lazy( () => import("@/pages/GeneralSettings/EmbeddingTextSplitterPreference") ); const GeneralVectorDatabase = lazy( () => import("@/pages/GeneralSettings/VectorDatabase") ); const GeneralSecurity = lazy(() => import("@/pages/GeneralSettings/Security")); const GeneralBrowserExtension = lazy( () => import("@/pages/GeneralSettings/BrowserExtensionApiKey") ); const WorkspaceSettings = lazy(() => import("@/pages/WorkspaceSettings")); const ChatEmbedWidgets = lazy( () => import("@/pages/GeneralSettings/ChatEmbedWidgets") ); const PrivacyAndData = lazy( () => import("@/pages/GeneralSettings/PrivacyAndData") ); const ExperimentalFeatures = lazy( () => import("@/pages/Admin/ExperimentalFeatures") ); const LiveDocumentSyncManage = lazy( () => import("@/pages/Admin/ExperimentalFeatures/Features/LiveSync/manage") ); const AgentBuilder = lazy(() => import("@/pages/Admin/AgentBuilder")); const CommunityHubTrending = lazy( () => import("@/pages/GeneralSettings/CommunityHub/Trending") ); const CommunityHubAuthentication = lazy( () => import("@/pages/GeneralSettings/CommunityHub/Authentication") ); const CommunityHubImportItem = lazy( () => import("@/pages/GeneralSettings/CommunityHub/ImportItem") ); const SystemPromptVariables = lazy( () => import("@/pages/Admin/SystemPromptVariables") ); const MobileConnections = lazy( () => import("@/pages/GeneralSettings/MobileConnections") ); export default function App() { return ( }> } /> } /> } /> } /> } /> } /> } /> {/* Admin */} } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Manager */} } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Onboarding Flow */} } /> } /> {/* Experimental feature pages */} {/* Live Document Sync feature */} } /> } /> } /> } /> } /> ); }