Skip to content

Commit 6dad55c

Browse files
Marcus Williamsjesusbotella
authored andcommitted
feat: Add platform browser detection to make library compatible with Angular Universal
1 parent da3dd2c commit 6dad55c

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/lib/src/ngx-lazy-load-images.directive.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Directive, ElementRef, Renderer2, Input, NgZone } from '@angular/core';
2-
import 'intersection-observer';
1+
import { Directive, ElementRef, Renderer2, Input, NgZone, Inject, PLATFORM_ID } from '@angular/core';
2+
import { isPlatformBrowser } from '@angular/common';
33

44
/**
55
* Angular Lazy Loading Images Directive
@@ -18,10 +18,14 @@ export class LazyLoadImagesDirective {
1818
intersectionObserver: IntersectionObserver;
1919
rootElement: HTMLElement;
2020

21-
constructor(element: ElementRef, public renderer: Renderer2, public ngZone: NgZone) {
21+
constructor(element: ElementRef, public renderer: Renderer2, public ngZone: NgZone, @Inject(PLATFORM_ID) private platformId: any) {
2222
this.rootElement = element.nativeElement;
2323
}
2424

25+
public get isBrowser(): boolean {
26+
return isPlatformBrowser(this.platformId);
27+
}
28+
2529
init() {
2630
this.registerIntersectionObserver();
2731

@@ -32,7 +36,10 @@ export class LazyLoadImagesDirective {
3236
}
3337

3438
ngOnInit() {
35-
this.ngZone.runOutsideAngular(() => this.init());
39+
if (this.isBrowser) {
40+
require('intersection-observer');
41+
this.ngZone.runOutsideAngular(() => this.init());
42+
}
3643
}
3744

3845
ngOnDestroy() {

0 commit comments

Comments
 (0)