From c5e76c5c3f7f419cd5c9e9342f5a2fb01cf6abfb Mon Sep 17 00:00:00 2001 From: Derek Burgman Date: Mon, 29 Aug 2022 22:22:42 -0500 Subject: [PATCH] fix: fixed issue where firebaseDocumentStoreUpdateFunction() repeated - fixed issue where firebaseDocumentStoreUpdateFunction() calls were called twice sometimes --- .../src/lib/model/store/store.document.crud.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/dbx-firebase/src/lib/model/store/store.document.crud.ts b/packages/dbx-firebase/src/lib/model/store/store.document.crud.ts index ee007fdb2..65f61c4fe 100644 --- a/packages/dbx-firebase/src/lib/model/store/store.document.crud.ts +++ b/packages/dbx-firebase/src/lib/model/store/store.document.crud.ts @@ -1,7 +1,7 @@ import { ModelFirebaseCreateFunction, ModelFirebaseDeleteFunction, ModelFirebaseUpdateFunction, OnCallCreateModelResult, TargetModelParams, InferredTargetModelParams, ModelFirebaseCrudFunction } from '@dereekb/firebase'; import { lazyFrom, LoadingState, loadingStateFromObs } from '@dereekb/rxjs'; import { firstValue, PartialOnKeys } from '@dereekb/util'; -import { first, from, Observable, switchMap } from 'rxjs'; +import { shareReplay, exhaustMap, first, from, Observable } from 'rxjs'; import { DbxFirebaseDocumentStore } from './store.document'; // MARK: Create @@ -41,7 +41,7 @@ export type DbxfirebaseDocumentStoreCrudFunction = (input: I) => Ob * @returns */ export function firebaseDocumentStoreCrudFunction(fn: ModelFirebaseCrudFunction): DbxfirebaseDocumentStoreCrudFunction { - return (params: I) => loadingStateFromObs(from(fn(params))); + return (params: I) => loadingStateFromObs(from(fn(params)).pipe(shareReplay(1))); } // MARK: Targeted Functions @@ -71,12 +71,13 @@ export function firebaseDocumentStoreUpdateFunction + exhaustMap((key) => fn({ ...params, key // inject key into the parameters. } as I) - ) + ), + shareReplay(1) ) ); } @@ -96,7 +97,7 @@ export function firebaseDocumentStoreDeleteFunction + exhaustMap((key) => fn({ ...params, key // inject key into the parameters. @@ -104,7 +105,8 @@ export function firebaseDocumentStoreDeleteFunction