Browse Source

UI: Fix menuSections subject.

feature/menu-refactoring
Igor Kulikov 2 years ago
parent
commit
8febc1ed42
  1. 2
      ui-ngx/src/app/core/services/menu.service.ts
  2. 6
      ui-ngx/src/app/shared/components/breadcrumb.component.ts

2
ui-ngx/src/app/core/services/menu.service.ts

@ -31,7 +31,7 @@ import { NavigationEnd, Router } from '@angular/router';
export class MenuService { export class MenuService {
currentMenuSections: Array<MenuSection>; currentMenuSections: Array<MenuSection>;
menuSections$: Subject<Array<MenuSection>> = new ReplaySubject<Array<MenuSection>>(); menuSections$: Subject<Array<MenuSection>> = new ReplaySubject<Array<MenuSection>>(1);
homeSections$: Subject<Array<HomeSection>> = new BehaviorSubject<Array<HomeSection>>([]); homeSections$: Subject<Array<HomeSection>> = new BehaviorSubject<Array<HomeSection>>([]);
availableMenuLinks$ = this.menuSections$.pipe( availableMenuLinks$ = this.menuSections$.pipe(
map((items) => this.allMenuLinks(items)) map((items) => this.allMenuLinks(items))

6
ui-ngx/src/app/shared/components/breadcrumb.component.ts

@ -15,10 +15,10 @@
/// ///
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
import { BehaviorSubject, mergeMap, Subject, Subscription } from 'rxjs'; import { BehaviorSubject, Subject, Subscription } from 'rxjs';
import { BreadCrumb, BreadCrumbConfig } from './breadcrumb'; import { BreadCrumb, BreadCrumbConfig } from './breadcrumb';
import { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router'; import { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';
import { distinctUntilChanged, filter, first, map } from 'rxjs/operators'; import { distinctUntilChanged, filter, first, map, switchMap } from 'rxjs/operators';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { guid } from '@core/utils'; import { guid } from '@core/utils';
import { BroadcastService } from '@core/services/broadcast.service'; import { BroadcastService } from '@core/services/broadcast.service';
@ -58,7 +58,7 @@ export class BreadcrumbComponent implements OnInit, OnDestroy {
routerEventsSubscription = this.router.events.pipe( routerEventsSubscription = this.router.events.pipe(
filter((event) => event instanceof NavigationEnd ), filter((event) => event instanceof NavigationEnd ),
distinctUntilChanged(), distinctUntilChanged(),
mergeMap(() => this.menuService.availableMenuSections().pipe(first())), switchMap(() => this.menuService.availableMenuSections().pipe(first())),
map( (sections) => this.buildBreadCrumbs(this.activatedRoute.snapshot, sections) ) map( (sections) => this.buildBreadCrumbs(this.activatedRoute.snapshot, sections) )
).subscribe(breadcrumns => this.breadcrumbs$.next(breadcrumns) ); ).subscribe(breadcrumns => this.breadcrumbs$.next(breadcrumns) );

Loading…
Cancel
Save