myAccessesMenuBuilder.ts 964 B

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