Skip to content

Commit 2f26e68

Browse files
107685: menu-component re-render section on store update
1 parent ca86437 commit 2f26e68

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

src/app/shared/menu/menu.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import { GenericConstructor } from '../../core/shared/generic-constructor';
66
import { hasValue, isNotEmptyOperator } from '../empty.util';
77
import { MenuSectionComponent } from './menu-section/menu-section.component';
88
import { getComponentForMenu } from './menu-section.decorator';
9-
import { compareArraysUsingIds } from '../../item-page/simple/item-types/shared/item-relationships-utils';
109
import { MenuSection } from './menu-section.model';
1110
import { MenuID } from './menu-id.model';
1211
import { ActivatedRoute } from '@angular/router';
@@ -86,7 +85,7 @@ export class MenuComponent implements OnInit, OnDestroy {
8685
this.menuCollapsed = this.menuService.isMenuCollapsed(this.menuID);
8786
this.menuPreviewCollapsed = this.menuService.isMenuPreviewCollapsed(this.menuID);
8887
this.menuVisible = this.menuService.isMenuVisible(this.menuID);
89-
this.sections = this.menuService.getMenuTopSections(this.menuID).pipe(distinctUntilChanged(compareArraysUsingIds()));
88+
this.sections = this.menuService.getMenuTopSections(this.menuID);
9089

9190
this.subs.push(
9291
this.sections.pipe(

src/app/shared/menu/menu.service.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
22
import { createSelector, MemoizedSelector, select, Store } from '@ngrx/store';
33
import { AppState, keySelector } from '../../app.reducer';
44
import { combineLatest as observableCombineLatest, Observable } from 'rxjs';
5-
import { map, switchMap } from 'rxjs/operators';
5+
import { distinctUntilChanged, map, switchMap } from 'rxjs/operators';
66
import {
77
ActivateMenuSectionAction,
88
AddMenuSectionAction,
@@ -22,6 +22,7 @@ import { MenuState } from './menu-state.model';
2222
import { MenuSections } from './menu-sections.model';
2323
import { MenuSection } from './menu-section.model';
2424
import { MenuID } from './menu-id.model';
25+
import { compareArraysUsingIds } from '../../item-page/simple/item-types/shared/item-relationships-utils';
2526

2627
export function menuKeySelector<T>(key: string, selector): MemoizedSelector<MenuState, T> {
2728
return createSelector(selector, (state) => {
@@ -76,8 +77,10 @@ export class MenuService {
7677
return this.store.pipe(
7778
select(menuByIDSelector(menuID)),
7879
select(menuSectionStateSelector),
79-
map((sections: MenuSections) => {
80-
return Object.values(sections)
80+
map((sections: MenuSections) => Object.values(sections)),
81+
distinctUntilChanged(compareArraysUsingIds()),
82+
map((sections: MenuSection[]) => {
83+
return sections
8184
.filter((section: MenuSection) => hasNoValue(section.parentID))
8285
.filter((section: MenuSection) => !mustBeVisible || section.visible);
8386
}

0 commit comments

Comments
 (0)