Advertisement
Guest User

Untitled

a guest
Sep 21st, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. @Injectable({
  2. providedIn: P2pBazaarAnchorModule
  3. })
  4. export class ProductsLoadedGuard implements CanActivate {
  5. constructor(private store: Store<fromStore.AppState>) {}
  6.  
  7. canActivate(): Observable<boolean> {
  8. return this.waitForProductsToLoad().pipe(
  9. switchMap(() => of(true)),
  10. catchError(() => of(false))
  11. );
  12. }
  13.  
  14. waitForProductsToLoad(): Observable<boolean> {
  15. return this.store.pipe(
  16. select(fromStore.isProductsLoaded),
  17. tap(loaded => {
  18. if (!loaded) {
  19. this.store.dispatch(PurchaseContractActions.loadProducts());
  20.  
  21. }
  22. }),
  23. filter(loaded => loaded),
  24. take(1)
  25. );
  26. }
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement