Merge pull request #1456 from iamanishroy/fix/JSON-field-update

fixed - JSON field update issue
This commit is contained in:
Shams
2023-10-31 01:31:18 -07:00
committed by GitHub
2 changed files with 10 additions and 4 deletions

View File

@@ -88,8 +88,8 @@ export interface ISideDrawerFieldProps<T = any> {
/** Update the local value. Also calls onDirty */
onChange: (value: T) => void;
/** Call when user input is ready to be saved (e.g. onBlur) */
onSubmit: () => void;
onSubmit: () => void;
/** Field locked. Do NOT check `column.locked` */
disabled: boolean;

View File

@@ -16,6 +16,7 @@ import {
setDoc,
doc,
deleteDoc,
updateDoc,
deleteField,
CollectionReference,
Query,
@@ -263,7 +264,7 @@ export function useFirestoreCollectionWithAtom<
// set the atoms value to a function that updates a doc in the collection
if (updateDocAtom) {
setUpdateDocAtom(
() => (path: string, update: T, deleteFields?: string[]) => {
() => async (path: string, update: T, deleteFields?: string[]) => {
const updateToDb = { ...update };
if (Array.isArray(deleteFields)) {
@@ -271,8 +272,13 @@ export function useFirestoreCollectionWithAtom<
set(updateToDb as any, field, deleteField());
}
}
return setDoc(doc(firebaseDb, path), updateToDb, { merge: true });
try {
return await updateDoc(doc(firebaseDb, path), updateToDb);
} catch (e) {
return await setDoc(doc(firebaseDb, path), updateToDb, {
merge: true,
});
}
}
);
}