All files / apps/web/src App.jsx

0% Statements 0/1
100% Branches 0/0
0% Functions 0/1
0% Lines 0/1

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128                                                                                                                                                                                                                                                               
import { Routes, Route, Navigate } from 'react-router-dom'
import { AuthProvider } from './contexts/AuthContext'
import Layout from './components/Layout'
import ProtectedRoute, { AdminRoute, OwnerRoute } from './components/ProtectedRoute'
import BackofficeLayout from './backoffice/components/BackofficeLayout'
import AdminLayout from './backoffice/components/AdminLayout'
import Home from './frontoffice/pages/Home'
import About from './frontoffice/pages/About'
import Pricing from './frontoffice/pages/Pricing'
import Login from './frontoffice/pages/Login'
import GoogleCallback from './frontoffice/pages/GoogleCallback'
import Workflow from './frontoffice/pages/Workflow'
import GenericWorkflow from './frontoffice/pages/GenericWorkflow'
import KnowledgeBase from './frontoffice/pages/KnowledgeBase'
import AgentChat from './frontoffice/pages/AgentChat'
import AgentChatEmbed from './frontoffice/pages/AgentChatEmbed'
 
import {
  JobsManagement,
  CrawlerConfig,
  Crawlers,
  CrawlerEdit,
  AdminOrganizations,
  CrawlerJobs,
  Synthetisers,
  SynthetiserEdit,
  KnowledgeRouter,
  KnowledgeRouters,
  KnowledgeRouterEdit,
  KnowledgeBases,
  KnowledgeBaseEdit,
  VirtualKBEdit,
  BackofficeSettings,
  OrganizationSettings,
  Agents,
  AgentEdit,
  Users,
  Schedules,
  ScheduleEdit,
  Subscription
} from './backoffice/pages'
import Profile from './frontoffice/pages/Profile'
 
function App() {
  return (
    <AuthProvider>
      <Routes>
        <Route path="/" element={<Layout />}>
          <Route index element={<Home />} />
          <Route path="about" element={<About />} />
          <Route path="pricing" element={<Pricing />} />
        </Route>
        
        <Route path="/login" element={<Login />} />
        <Route path="/auth/callback" element={<GoogleCallback />} />
        <Route path="/profile" element={<Profile />} />
        
        <Route path="/agent-embed/:agentId" element={<AgentChatEmbed />} />
        
        <Route path="/admin" element={
          <AdminRoute>
            <AdminLayout />
          </AdminRoute>
        }>
          <Route path="users" element={<Users />} />
          <Route path="organizations" element={<AdminOrganizations />} />
        </Route>
        
        <Route path="/:organizationId" element={
          <ProtectedRoute>
            <Layout />
          </ProtectedRoute>
        }>
          <Route index element={<Home />} />
          <Route path="about" element={<About />} />
          <Route path="pricing" element={<Pricing />} />
          <Route path="workflow/:workflowId?" element={<Workflow />} />
          <Route path="workflow-generic" element={<GenericWorkflow />} />
          <Route path="knowledge-base/:kbId?" element={<KnowledgeBase />} />
          <Route path="agent-chat/:agentId?" element={<AgentChat />} />
        </Route>
 
        <Route path="/:organizationId/backoffice" element={
          <ProtectedRoute>
            <OwnerRoute>
              <BackofficeLayout />
            </OwnerRoute>
          </ProtectedRoute>
        }>
          <Route index element={<OrganizationSettings />} />
          
          <Route path="crawlers" element={<Crawlers />} />
          <Route path="crawlers/:id" element={<CrawlerEdit />} />
          <Route path="crawler-config" element={<CrawlerConfig />} />
          <Route path="crawler-config/:id" element={<CrawlerConfig />} />
          <Route path="crawler" element={<Navigate to="crawlers" replace />} />
          <Route path="jobs" element={<JobsManagement />} />
          
          <Route path="workflows" element={<Synthetisers />} />
          <Route path="workflows/:id" element={<SynthetiserEdit />} />
          
          <Route path="knowledge-routers" element={<KnowledgeRouters />} />
          <Route path="knowledge-routers/:id" element={<KnowledgeRouterEdit />} />
          <Route path="knowledge-router" element={<Navigate to="knowledge-routers" replace />} />
          
          <Route path="knowledge" element={<KnowledgeBases />} />
          <Route path="knowledge/virtual/:id" element={<VirtualKBEdit />} />
          <Route path="knowledge/:id" element={<KnowledgeBaseEdit />} />
          
          <Route path="agents" element={<Agents />} />
          <Route path="agents/:id" element={<AgentEdit />} />
          
          <Route path="schedules" element={<Schedules />} />
          <Route path="schedules/new" element={<ScheduleEdit />} />
          <Route path="schedules/:id" element={<ScheduleEdit />} />
          <Route path="organization" element={<OrganizationSettings />} />
          <Route path="subscription" element={<Subscription />} />
          <Route path="settings" element={<BackofficeSettings />} />
        </Route>
        
        <Route path="*" element={<Navigate to="/" replace />} />
      </Routes>
    </AuthProvider>
  )
}
 
export default App