Zum Hauptinhalt springen

Rutas de la aplicación

E-Cashpoint Web usa React Router v6 con un sistema de rutas protegidas. Aquí está el mapa completo.

Configuración

Las rutas se definen en src/App.jsx:

<Routes>
<Route path="/" element={<Navigate to="/login" replace />} />
<Route path="/login" element={<Login />} />
<Route path="/register" element={<Register />} />

<Route path="/checkout/success" element={<CheckoutSuccessPage />} />
<Route path="/checkout/cancel" element={<CheckoutCancelPage />} />

<Route element={<ProtectedRoute />}>
<Route path="/ecommerce-setup" element={<EcommerceSetup />} />
</Route>

<Route element={<ProtectedRoute />}>
<Route element={<SuperAdminRoute />}>
<Route path="/super-admin" element={<SuperAdminDashboard />} />
</Route>
</Route>

<Route element={<ProtectedRoute />}>
<Route path="/app" element={<AppShell />}>
<Route index element={<Dashboard />} />
<Route path="servicios" element={<Dashboard />} />
<Route path="restaurantes" element={<Dashboard />} />
<Route path="productos" element={<Dashboard />} />

<Route path="servicios/agenda" element={<AgendaPage />} />
<Route path="servicios/citas" element={<AppointmentsPage />} />
...
</Route>
</Route>

<Route path="*" element={<Navigate to="/app" replace />} />
</Routes>

Rutas públicas

RutaComponenteDescripción
/NavigateRedirige a /login
/loginLoginPantalla de inicio de sesión
/registerRegisterRegistro de cliente
/checkout/successCheckoutSuccessPagePago exitoso
/checkout/cancelCheckoutCancelPagePago cancelado
/_dev/ecommerce-setupEcommerceSetupPreviewPreview dev (no protegido)
/_dev/referralsReferralsPreviewPreview dev

Rutas protegidas (requieren login)

RutaComponenteDescripción
/ecommerce-setupEcommerceSetupActivación de comercio
/super-adminSuperAdminDashboardPanel admin
/app/*(múltiples)Aplicación principal

Rutas de la aplicación principal (/app/*)

Dashboard

RutaComponente
/appDashboard (default)
/app/serviciosDashboard (perfil servicios)
/app/restaurantesDashboard (perfil restaurantes)
/app/productosDashboard (perfil productos)

Servicios (perfil)

RutaComponenteMódulo
/app/servicios/agendaAgendaPageAgenda
/app/servicios/citasAppointmentsPageCitas
/app/servicios/personalStaffPagePersonal
/app/servicios/serviciosServicesPageServicios (catálogo)
/app/servicios/promocionesServicesPromotionsPagePromociones

Restaurantes (perfil)

RutaComponenteMódulo
/app/restaurantes/menuRestaurantCatalogPageMenú
/app/restaurantes/promocionesRestaurantPromotionsPagePromociones

Compartidas

RutaComponenteMódulo
/app/produkteHandelsPanelCatálogo de productos
/app/cuponesCuponesPanelCupones
/app/reporteReportsReportes
/app/demo-marketingDemoMarketingMarketing
/app/clientesCustomersClientes directos
/app/clientes-indirectosIndirectCustomersReferidos
/app/filialenFilialenSucursales
/app/empleadosEmployeesPageEmpleados
/app/posPOSPagePunto de venta
/app/rechnungenRechnungenFacturación del día
/app/historial-facturasInvoicesHistoryPageHistorial completo
/app/preview/merchant/:id?MerchantPreviewVista previa pública

Guards (protección de rutas)

<ProtectedRoute />

Verifica que el usuario esté autenticado. Si no, redirige a /login.

<Route element={<ProtectedRoute />}>
<Route path="/ecommerce-setup" element={<EcommerceSetup />} />
</Route>

<SuperAdminRoute />

Verifica que el usuario tenga rol de super-admin. Si no, redirige.

<Route element={<ProtectedRoute />}>
<Route element={<SuperAdminRoute />}>
<Route path="/super-admin" element={<SuperAdminDashboard />} />
</Route>
</Route>

Próximos pasos