Skip to content

Commit e293f3d

Browse files
Atmire-Kristoftdonohue
authored andcommitted
107685: menu-component re-render section on store update
1 parent 0a3502e commit e293f3d

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 { filter, map, switchMap, take } from 'rxjs/operators';
5+
import { distinctUntilChanged, filter, map, switchMap, take } from 'rxjs/operators';
66
import {
77
ActivateMenuSectionAction,
88
AddMenuSectionAction,
@@ -23,6 +23,7 @@ import { MenuSections } from './menu-sections.model';
2323
import { MenuSection } from './menu-section.model';
2424
import { MenuID } from './menu-id.model';
2525
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
26+
import { compareArraysUsingIds } from '../../item-page/simple/item-types/shared/item-relationships-utils';
2627

2728
export function menuKeySelector<T>(key: string, selector): MemoizedSelector<MenuState, T> {
2829
return createSelector(selector, (state) => {
@@ -81,8 +82,10 @@ export class MenuService {
8182
return this.store.pipe(
8283
select(menuByIDSelector(menuID)),
8384
select(menuSectionStateSelector),
84-
map((sections: MenuSections) => {
85-
return Object.values(sections)
85+
map((sections: MenuSections) => Object.values(sections)),
86+
distinctUntilChanged(compareArraysUsingIds()),
87+
map((sections: MenuSection[]) => {
88+
return sections
8689
.filter((section: MenuSection) => hasNoValue(section.parentID))
8790
.filter((section: MenuSection) => !mustBeVisible || section.visible);
8891
}

0 commit comments

Comments
 (0)