refactor: improve observable layout change sharing

This commit is contained in:
sashaqred 2020-04-15 11:42:52 +03:00
parent d057bfedcd
commit fb952d0c06
No known key found for this signature in database
GPG key ID: 0DB79F7B24682F4B

View file

@ -1,20 +1,20 @@
import { Injectable } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { delay, share } from 'rxjs/operators';
import { delay, shareReplay } from 'rxjs/operators';
@Injectable()
export class LayoutService {
protected layoutSize$ = new Subject();
protected layoutSizeChange$ = this.layoutSize$.pipe(
shareReplay({ refCount: true }),
);
changeLayoutSize() {
this.layoutSize$.next();
}
onChangeLayoutSize(): Observable<any> {
return this.layoutSize$.pipe(
share(),
delay(1),
);
return this.layoutSizeChange$.pipe(delay(1));
}
}