feat(help-page): implement help page layout with FAQ section and sidebar navigation
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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' },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
17
src/app/core/services/menu.utils.ts
Normal file
17
src/app/core/services/menu.utils.ts
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user