Skip to content

Commit 4aa1066

Browse files
authored
fix(navbar,autocomplete): use afterNextRender for event listeners for ssr support (#DS-3964) (#1129)
1 parent e688b63 commit 4aa1066

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

packages/components/autocomplete/autocomplete-trigger.directive.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
Optional,
2828
Provider,
2929
ViewContainerRef,
30+
afterNextRender,
3031
forwardRef,
3132
inject
3233
} from '@angular/core';
@@ -220,9 +221,9 @@ export class KbqAutocompleteTrigger
220221
// @breaking-change 8.0.0 Make `_viewportRuler` required.
221222
private viewportRuler?: ViewportRuler
222223
) {
223-
if (this.window) {
224+
afterNextRender(() => {
224225
zone.runOutsideAngular(() => this.window.addEventListener('blur', this.windowBlurHandler));
225-
}
226+
});
226227

227228
this.scrollStrategy = scrollStrategy;
228229
}

packages/components/autocomplete/autocomplete.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1802,10 +1802,11 @@ describe('KbqAutocomplete', () => {
18021802
}));
18031803
});
18041804

1805-
it('should not reopen a closed autocomplete when returning to a blurred tab', () => {
1805+
it('should not reopen a closed autocomplete when returning to a blurred tab', async () => {
18061806
const fixture = createComponent(SimpleAutocomplete);
18071807

18081808
fixture.detectChanges();
1809+
await fixture.whenStable();
18091810

18101811
const trigger = fixture.componentInstance.trigger;
18111812
const input = fixture.debugElement.query(By.css('input')).nativeElement;

packages/components/navbar/navbar-item.component.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
Optional,
1919
TemplateRef,
2020
ViewEncapsulation,
21+
afterNextRender,
2122
booleanAttribute,
2223
inject
2324
} from '@angular/core';
@@ -606,11 +607,9 @@ export class KbqNavbarToggle extends KbqTooltipTrigger implements OnDestroy {
606607

607608
this.placement = PopUpPlacements.Right;
608609

609-
if (this.window) {
610-
this.ngZone.runOutsideAngular(() => {
611-
this.window.addEventListener('keydown', this.windowToggleHandler);
612-
});
613-
}
610+
afterNextRender(() => {
611+
this.ngZone.runOutsideAngular(() => this.window.addEventListener('keydown', this.windowToggleHandler));
612+
});
614613
}
615614

616615
onKeydown($event: KeyboardEvent) {

0 commit comments

Comments
 (0)