import { renderDashboard } from './DashboardPage.js'; import { renderFacturasPage } from './Facturas.js'; import { renderCreateInvoicePage } from './CreateInvoicePage.js'; import { renderClientesPage } from './ClientesPage.js'; import { renderSettingsPage } from './SettingsPage.js'; // Registry of all pages available in the application export const pagesRegistry = [ { route: 'dashboard', name: 'Dashboard', icon: '', voicePatterns: ['dashboard', 'inicio', 'ir al inicio', 'ir al dashboard', 'resumen', 'home', 'panel', 'principal'], requiresAuth: true, showInSidebar: true, render: renderDashboard }, { route: 'invoices', name: 'Facturas', icon: '', voicePatterns: ['facturas', 'ver facturas', 'ir a facturas', 'lista facturas', 'mis facturas', 'listado facturas'], requiresAuth: true, showInSidebar: true, render: renderFacturasPage }, { route: 'create-invoice', name: 'Nueva Factura', icon: '+', voicePatterns: ['nueva factura', 'crear factura', 'factura nueva', 'añadir factura'], requiresAuth: true, showInSidebar: false, // No mostrar en sidebar render: renderCreateInvoicePage }, { route: 'clients', name: 'Clientes', icon: '', voicePatterns: ['clientes', 'ver clientes', 'ir a clientes', 'lista clientes', 'mis clientes'], requiresAuth: true, showInSidebar: true, render: renderClientesPage }, { route: 'settings', name: 'Configuración', icon: '', voicePatterns: ['configuración', 'configuracion', 'ajustes', 'settings', 'preferencias'], requiresAuth: true, showInSidebar: true, render: renderSettingsPage } ]; // Get pages that the user can access export function getAvailablePages(isAuthenticated) { if (!isAuthenticated) { return []; } // Filter pages based on authentication requirement and sidebar visibility return pagesRegistry.filter(page => { if (page.requiresAuth && !isAuthenticated) return false; return page.showInSidebar; }); } // Get page by route export function getPageByRoute(route) { return pagesRegistry.find(page => page.route === route); }