myAccessesMenuBuilder.ts 940 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import AbstractMenuBuilder from '~/services/layout/menuBuilder/abstractMenuBuilder'
  2. import type { MenuGroup, MenuItems } from '~/types/layout'
  3. import { MENU_LINK_TYPE } from '~/types/enum/layout'
  4. /**
  5. * Menu Mon Profil
  6. */
  7. export default class MyAccessesMenuBuilder extends AbstractMenuBuilder {
  8. static readonly menuName = 'MyAccesses'
  9. /**
  10. * Construit le menu Header Multi compte, ou null si aucune page accessible
  11. */
  12. build(): MenuGroup | null {
  13. const children: MenuItems = []
  14. Object.entries(this.accessProfile.multiAccesses).forEach((access) => {
  15. children.push(
  16. this.createItem(
  17. access.name as string,
  18. undefined,
  19. '/switch/' + access.id,
  20. MENU_LINK_TYPE.V1,
  21. ),
  22. )
  23. })
  24. if (children.length > 0) {
  25. return this.createGroup(
  26. 'multiAccesses',
  27. { name: 'fas fa-building' },
  28. children,
  29. )
  30. }
  31. return null
  32. }
  33. }