Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Injectable({
- providedIn: P2pBazaarAnchorModule
- })
- export class ProductsLoadedGuard implements CanActivate {
- constructor(private store: Store<fromStore.AppState>) {}
- canActivate(): Observable<boolean> {
- return this.waitForProductsToLoad().pipe(
- switchMap(() => of(true)),
- catchError(() => of(false))
- );
- }
- waitForProductsToLoad(): Observable<boolean> {
- return this.store.pipe(
- select(fromStore.isProductsLoaded),
- tap(loaded => {
- if (!loaded) {
- this.store.dispatch(PurchaseContractActions.loadProducts());
- }
- }),
- filter(loaded => loaded),
- take(1)
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement