From 8f25b656269a05bd239ce82ca9497717b0d94a7c Mon Sep 17 00:00:00 2001 From: gbubemismith Date: Fri, 8 Nov 2024 12:29:09 -0500 Subject: [PATCH] Added takewhile operator to only make calls when userId is present --- .../common/src/vault/services/folder/folder.service.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libs/common/src/vault/services/folder/folder.service.ts b/libs/common/src/vault/services/folder/folder.service.ts index 51a45920059..984e49c4f41 100644 --- a/libs/common/src/vault/services/folder/folder.service.ts +++ b/libs/common/src/vault/services/folder/folder.service.ts @@ -1,4 +1,4 @@ -import { Observable, firstValueFrom, map, of, shareReplay, switchMap } from "rxjs"; +import { Observable, firstValueFrom, map, of, shareReplay, switchMap, takeWhile } from "rxjs"; import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service"; @@ -28,6 +28,7 @@ export class FolderService implements InternalFolderServiceAbstraction { folders$(userId$: Observable): Observable { return userId$.pipe( + takeWhile((userId) => userId != null), switchMap((userId) => this.encryptedFoldersState(userId).state$), map((folders) => { if (folders == null) { @@ -39,8 +40,11 @@ export class FolderService implements InternalFolderServiceAbstraction { ); } - folderViews$(userId$: Observable) { - return userId$.pipe(switchMap((userId) => this.decryptedFoldersState(userId).state$)); + folderViews$(userId$: Observable): Observable { + return userId$.pipe( + takeWhile((userId) => userId != null), + switchMap((userId) => this.decryptedFoldersState(userId).state$), + ); } async clearDecryptedFolderState(userId: UserId): Promise {