doli-front/src/pages/pagesRegistry.js

73 lines
1.7 KiB
JavaScript
Raw Normal View History

import { renderDashboard } from './DashboardPage.js';
import { renderTestPage } from './test.js';
2026-01-23 18:53:02 +00:00
import { renderFacturasPage } from './Facturas.js';
// Registry of all pages available in the application
export const pagesRegistry = [
{
route: 'dashboard',
name: 'Dashboard',
icon: '🏠',
requiresAuth: true,
showInSidebar: true,
render: renderDashboard
},
{
route: 'test',
name: 'Test Page',
icon: '🧪',
requiresAuth: true,
showInSidebar: true,
render: renderTestPage
},
{
route: 'invoices',
name: 'Facturas',
icon: '📄',
requiresAuth: true,
showInSidebar: true,
2026-01-23 18:53:02 +00:00
render: renderFacturasPage
},
{
route: 'clients',
name: 'Clientes',
icon: '👥',
requiresAuth: true,
showInSidebar: true,
render: () => {
const div = document.createElement('div');
div.innerHTML = '<h1>Clientes</h1><p>Página en construcción...</p>';
return div;
}
},
{
route: 'settings',
name: 'Configuración',
icon: '⚙️',
requiresAuth: true,
showInSidebar: true,
render: () => {
const div = document.createElement('div');
div.innerHTML = '<h1>Configuración</h1><p>Página en construcción...</p>';
return div;
}
}
];
// 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);
}