From d37608111af25017e3b60994653ac89de50dde2a Mon Sep 17 00:00:00 2001 From: Pablo Martinez Garcia Date: Tue, 20 Apr 2021 10:21:22 +0200 Subject: [PATCH] AAE-4879 Deatach tooltip card when directive is destroyed (#6939) --- .../tooltip-card/tooltip-card.directive.spec.ts | 13 +++++++++++++ .../tooltip-card/tooltip-card.directive.ts | 8 ++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/core/directives/tooltip-card/tooltip-card.directive.spec.ts b/lib/core/directives/tooltip-card/tooltip-card.directive.spec.ts index a6c4a3e9dd..e1001b456b 100644 --- a/lib/core/directives/tooltip-card/tooltip-card.directive.spec.ts +++ b/lib/core/directives/tooltip-card/tooltip-card.directive.spec.ts @@ -96,4 +96,17 @@ describe('TooltipCardDirective', () => { tooltipCard = overlay.querySelector('div.adf-tooltip-card'); expect(tooltipCard).toBeNull(); }); + + it('should hide tooltip-card on destroy', () => { + const span = fixture.debugElement.query(By.css('span.test-component')); + span.triggerEventHandler('mouseenter', {}); + fixture.detectChanges(); + let tooltipCard = overlay.querySelector('div.adf-tooltip-card'); + expect(tooltipCard).not.toBeNull(); + + fixture.componentInstance.directive.ngOnDestroy(); + fixture.detectChanges(); + tooltipCard = overlay.querySelector('div.adf-tooltip-card'); + expect(tooltipCard).toBeNull(); + }); }); diff --git a/lib/core/directives/tooltip-card/tooltip-card.directive.ts b/lib/core/directives/tooltip-card/tooltip-card.directive.ts index cc3c6fa899..884d7e414a 100644 --- a/lib/core/directives/tooltip-card/tooltip-card.directive.ts +++ b/lib/core/directives/tooltip-card/tooltip-card.directive.ts @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { ComponentRef, Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core'; +import { ComponentRef, Directive, ElementRef, HostListener, Input, OnDestroy, OnInit } from '@angular/core'; import { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay'; import { ComponentPortal } from '@angular/cdk/portal'; import { TooltipCardComponent } from './tooltip-card.component'; @Directive({ selector: '[adf-tooltip-card]' }) -export class TooltipCardDirective implements OnInit { +export class TooltipCardDirective implements OnInit, OnDestroy { @Input('adf-tooltip-card') text = ''; @Input() image = ''; @@ -41,6 +41,10 @@ export class TooltipCardDirective implements OnInit { private elementRef: ElementRef) { } + ngOnDestroy(): void { + this.hide(); + } + ngOnInit(): void { const positionStrategy = this.overlayPositionBuilder .flexibleConnectedTo(this.elementRef)