From 1ecbd9f90d4685167b641cb94f8dd33b0b434562 Mon Sep 17 00:00:00 2001 From: Xiao Gui <xgui3783@gmail.com> Date: Mon, 6 May 2019 14:43:47 +0200 Subject: [PATCH] bugfix: ctxMenu items no longer persist --- src/atlasViewer/atlasViewer.component.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/atlasViewer/atlasViewer.component.ts b/src/atlasViewer/atlasViewer.component.ts index fbb7fe151..70292ad22 100644 --- a/src/atlasViewer/atlasViewer.component.ts +++ b/src/atlasViewer/atlasViewer.component.ts @@ -1,8 +1,8 @@ -import { Component, HostBinding, ViewChild, ViewContainerRef, OnDestroy, OnInit, TemplateRef, Injector } from "@angular/core"; +import { Component, HostBinding, ViewChild, ViewContainerRef, OnDestroy, OnInit, TemplateRef, AfterViewInit } from "@angular/core"; import { Store, select } from "@ngrx/store"; import { ViewerStateInterface, isDefined, FETCHED_SPATIAL_DATA, UPDATE_SPATIAL_DATA, TOGGLE_SIDE_PANEL, safeFilter } from "../services/stateStore.service"; import { Observable, Subscription, combineLatest, interval, merge, of } from "rxjs"; -import { map, filter, distinctUntilChanged, delay, concatMap, debounceTime, scan } from "rxjs/operators"; +import { map, filter, distinctUntilChanged, delay, concatMap, debounceTime, withLatestFrom } from "rxjs/operators"; import { AtlasViewerDataService } from "./atlasViewer.dataService.service"; import { WidgetServices } from "./widgetUnit/widgetService.service"; import { LayoutMainSide } from "../layouts/mainside/mainside.component"; @@ -29,7 +29,7 @@ import { DatabrowserService } from "src/ui/databrowserModule/databrowser.service ] }) -export class AtlasViewer implements OnDestroy, OnInit { +export class AtlasViewer implements OnDestroy, OnInit, AfterViewInit { @ViewChild('floatingMouseContextualContainer', { read: ViewContainerRef }) floatingMouseContextualContainer: ViewContainerRef @ViewChild('helpComponent', {read: TemplateRef}) helpComponent : TemplateRef<any> @@ -180,10 +180,6 @@ export class AtlasViewer implements OnDestroy, OnInit { map(([segment, onhoverLandmark]) => onhoverLandmark ? null : segment ) ) - this.onhoverSegmentForFixed$ = this.onhoverSegment$.pipe( - filter(() => !this.rClContextualMenu || !this.rClContextualMenu.isShown ) - ) - this.selectedParcellation$ = this.store.pipe( select('viewerState'), @@ -306,6 +302,13 @@ export class AtlasViewer implements OnDestroy, OnInit { this.subscriptions.forEach(s => s.unsubscribe()) } + ngAfterViewInit(){ + this.onhoverSegmentForFixed$ = this.rClContextualMenu.onShow.pipe( + withLatestFrom(this.onhoverSegment$), + map(([_flag, onhoverSegment]) => onhoverSegment) + ) + } + /** * perhaps move this to constructor? */ -- GitLab