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
| Ruta | Componente | Descripción |
|---|---|---|
/ | Navigate | Redirige a /login |
/login | Login | Pantalla de inicio de sesión |
/register | Register | Registro de cliente |
/checkout/success | CheckoutSuccessPage | Pago exitoso |
/checkout/cancel | CheckoutCancelPage | Pago cancelado |
/_dev/ecommerce-setup | EcommerceSetupPreview | Preview dev (no protegido) |
/_dev/referrals | ReferralsPreview | Preview dev |
Rutas protegidas (requieren login)
| Ruta | Componente | Descripción |
|---|---|---|
/ecommerce-setup | EcommerceSetup | Activación de comercio |
/super-admin | SuperAdminDashboard | Panel admin |
/app/* | (múltiples) | Aplicación principal |
Rutas de la aplicación principal (/app/*)
Dashboard
| Ruta | Componente |
|---|---|
/app | Dashboard (default) |
/app/servicios | Dashboard (perfil servicios) |
/app/restaurantes | Dashboard (perfil restaurantes) |
/app/productos | Dashboard (perfil productos) |
Servicios (perfil)
| Ruta | Componente | Módulo |
|---|---|---|
/app/servicios/agenda | AgendaPage | Agenda |
/app/servicios/citas | AppointmentsPage | Citas |
/app/servicios/personal | StaffPage | Personal |
/app/servicios/servicios | ServicesPage | Servicios (catálogo) |
/app/servicios/promociones | ServicesPromotionsPage | Promociones |
Restaurantes (perfil)
| Ruta | Componente | Módulo |
|---|---|---|
/app/restaurantes/menu | RestaurantCatalogPage | Menú |
/app/restaurantes/promociones | RestaurantPromotionsPage | Promociones |
Compartidas
| Ruta | Componente | Módulo |
|---|---|---|
/app/produkte | HandelsPanel | Catálogo de productos |
/app/cupones | CuponesPanel | Cupones |
/app/reporte | Reports | Reportes |
/app/demo-marketing | DemoMarketing | Marketing |
/app/clientes | Customers | Clientes directos |
/app/clientes-indirectos | IndirectCustomers | Referidos |
/app/filialen | Filialen | Sucursales |
/app/empleados | EmployeesPage | Empleados |
/app/pos | POSPage | Punto de venta |
/app/rechnungen | Rechnungen | Facturación del día |
/app/historial-facturas | InvoicesHistoryPage | Historial completo |
/app/preview/merchant/:id? | MerchantPreview | Vista 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
- Aprende sobre el sistema i18n →
- Conoce los estilos y temas →