doli-front/src/pages/pagesRegistry.js

68 lines
2.0 KiB
JavaScript
Raw Normal View History

import { renderDashboard } from './DashboardPage.js';
2026-01-23 18:53:02 +00:00
import { renderFacturasPage } from './Facturas.js';
import { renderCreateInvoicePage } from './CreateInvoicePage.js';
import { renderClientesPage } from './ClientesPage.js';
import { renderSettingsPage } from './SettingsPage.js';
import { icons } from '../services/icons.js';
export const pagesRegistry = [
{
route: 'dashboard',
name: 'Dashboard',
icon: icons.dashboard,
voicePatterns: ['dashboard', 'inicio', 'ir al inicio', 'ir al dashboard', 'resumen', 'home', 'panel', 'principal'],
requiresAuth: true,
showInSidebar: true,
render: renderDashboard
},
{
route: 'invoices',
name: 'Facturas',
icon: icons.invoices,
voicePatterns: ['facturas', 'ver facturas', 'ir a facturas', 'lista facturas', 'mis facturas', 'listado facturas'],
requiresAuth: true,
showInSidebar: true,
2026-01-23 18:53:02 +00:00
render: renderFacturasPage
},
{
route: 'create-invoice',
name: 'Nueva Factura',
icon: icons.plus,
voicePatterns: ['nueva factura', 'crear factura', 'factura nueva', 'añadir factura'],
requiresAuth: true,
showInSidebar: false,
render: renderCreateInvoicePage
},
{
route: 'clients',
name: 'Clientes',
icon: icons.clients,
voicePatterns: ['clientes', 'ver clientes', 'ir a clientes', 'lista clientes', 'mis clientes'],
requiresAuth: true,
showInSidebar: true,
render: renderClientesPage
},
{
route: 'settings',
name: 'Configuración',
icon: icons.settings,
voicePatterns: ['configuración', 'configuracion', 'ajustes', 'settings', 'preferencias'],
requiresAuth: true,
showInSidebar: true,
render: renderSettingsPage
}
];
export function getAvailablePages(isAuthenticated) {
if (!isAuthenticated) {
return [];
}
return pagesRegistry.filter(page => {
if (page.requiresAuth && !isAuthenticated) return false;
return page.showInSidebar;
});
}
export function getPageByRoute(route) {
return pagesRegistry.find(page => page.route === route);
}