feat(help-page): implement help page layout with FAQ section and sidebar navigation

This commit is contained in:
2026-07-23 17:13:33 -03:00
parent d50bd40602
commit afaa761acc
15 changed files with 389 additions and 10 deletions

View File

@@ -1,13 +1,7 @@
import { inject } from '@angular/core';
import { CanActivateFn, Router } from '@angular/router';
import { findMenu } from '../services/menu.utils';
import { TenantService } from '../services/tenant.service';
import { Menu } from '../services/tenant.interface';
function containsMenu(menues: Menu[], menuCode: string): boolean {
return menues.some(
menu => menu.code === menuCode || containsMenu(menu.submenues ?? [], menuCode)
);
}
export const hasMenuGuard = (menuCode: string): CanActivateFn => {
return () => {
@@ -20,7 +14,7 @@ export const hasMenuGuard = (menuCode: string): CanActivateFn => {
return router.createUrlTree(['/']);
}
const hasMenu = containsMenu(tenant.menues ?? [], menuCode);
const hasMenu = findMenu(tenant.menues ?? [], menuCode) !== undefined;
if (hasMenu) {
return true;

View File

@@ -120,8 +120,8 @@ export class StoreLayoutComponent implements OnInit {
heading: 'Ayuda',
links: [
{ label: 'Contacto' },
{ label: 'Ayuda' },
{ label: 'Preguntas frecuentes' },
{ label: 'Ayuda', routerLink: '/ayuda' },
{ label: 'Preguntas frecuentes', routerLink: '/ayuda/preguntas-frecuentes' },
],
},
];

View File

@@ -0,0 +1,17 @@
import { Menu } from './tenant.interface';
export function findMenu(menues: readonly Menu[], menuCode: string): Menu | undefined {
for (const menu of menues) {
if (menu.code === menuCode) {
return menu;
}
const submenu = findMenu(menu.submenues ?? [], menuCode);
if (submenu) {
return submenu;
}
}
return undefined;
}