1+ import { select } from '@ngxs/store' ;
2+
13import { TranslatePipe } from '@ngx-translate/core' ;
24
35import { MenuItem } from 'primeng/api' ;
46import { PanelMenuModule } from 'primeng/panelmenu' ;
57
68import { filter , map } from 'rxjs' ;
79
8- import { Component , computed , effect , inject , output } from '@angular/core' ;
10+ import { Component , computed , inject , output } from '@angular/core' ;
911import { toSignal } from '@angular/core/rxjs-interop' ;
1012import { ActivatedRoute , NavigationEnd , Router , RouterLink , RouterLinkActive } from '@angular/router' ;
1113
1214import { PROJECT_MENU_ITEMS , REGISTRATION_MENU_ITEMS } from '@core/constants' ;
1315import { NavigationService } from '@core/services' ;
16+ import { AuthSelectors } from '@osf/features/auth/store' ;
1417import { IconComponent } from '@osf/shared/components' ;
1518
1619@Component ( {
@@ -26,14 +29,26 @@ export class NavMenuComponent {
2629 private readonly route = inject ( ActivatedRoute ) ;
2730 private readonly navigationService = inject ( NavigationService ) ;
2831
29- protected menuItems = this . navigationService . getFilteredMenuItems ( ) ;
32+ private readonly isAuthenticated = select ( AuthSelectors . isAuthenticated ) ;
33+
3034 protected readonly myProjectMenuItems = PROJECT_MENU_ITEMS ;
3135 protected readonly registrationMenuItems = REGISTRATION_MENU_ITEMS ;
3236
3337 protected readonly mainMenuItems = computed ( ( ) => {
34- return this . isCollectionsRoute ( )
35- ? this . menuItems
36- : this . menuItems . filter ( ( item ) => item . routerLink !== '/collections' ) ;
38+ const isAuthenticated = this . isAuthenticated ( ) ;
39+ const menuItems = this . navigationService . getFilteredMenuItems ( isAuthenticated ) ;
40+
41+ if ( this . isRegistryRouteDetails ( ) ) {
42+ menuItems . map ( ( menuItem ) => {
43+ if ( menuItem . id === 'registries' ) {
44+ menuItem . expanded = true ;
45+ return menuItem ;
46+ }
47+ return menuItem ;
48+ } ) ;
49+ }
50+
51+ return this . isCollectionsRoute ( ) ? menuItems : menuItems . filter ( ( item ) => item . routerLink !== '/collections' ) ;
3752 } ) ;
3853
3954 protected readonly currentRoute = toSignal (
@@ -52,21 +67,6 @@ export class NavMenuComponent {
5267 protected readonly isRegistryRoute = computed ( ( ) => this . currentRoute ( ) . isRegistryRoute ) ;
5368 protected readonly isRegistryRouteDetails = computed ( ( ) => this . currentRoute ( ) . isRegistryRouteDetails ) ;
5469
55- constructor ( ) {
56- effect ( ( ) => {
57- const isRouteDetails = this . isRegistryRouteDetails ( ) ;
58- if ( isRouteDetails ) {
59- this . menuItems = this . menuItems . map ( ( menuItem ) => {
60- if ( menuItem . id === 'registries' ) {
61- menuItem . expanded = true ;
62- return menuItem ;
63- }
64- return menuItem ;
65- } ) ;
66- }
67- } ) ;
68- }
69-
7070 private getRouteInfo ( ) {
7171 const urlSegments = this . router . url . split ( '/' ) . filter ( ( segment ) => segment ) ;
7272
0 commit comments