diff --git a/src/components/app.jsx b/src/components/app.jsx index 99fc2fb..2851701 100644 --- a/src/components/app.jsx +++ b/src/components/app.jsx @@ -1081,18 +1081,15 @@ export default class App extends Component { alertsService.add('Setting saved'); }); if (window.user) { - window.db.getDb().then(remoteDb => { - remoteDb - .collection('users') - .doc(window.user.uid) - .update({ - [`settings.${settingName}`]: this.state.prefs[settingName] - }) - .then(arg => { - log(`Setting "${settingName}" for user`, arg); - }) - .catch(error => log(error)); - }); + db.updateUserSetting( + window.user.uid, + settingName, + this.state.prefs[settingName] + ) + .then(arg => { + log(`Setting "${settingName}" saved`, arg); + }) + .catch(error => log(error)); } trackEvent('ui', 'updatePref-' + settingName, prefs[settingName]); } diff --git a/src/db.js b/src/db.js index cef1394..9982a08 100644 --- a/src/db.js +++ b/src/db.js @@ -210,6 +210,14 @@ function getArrayFromQuerySnapshot(querySnapshot) { return getDocs(q).then(getArrayFromQuerySnapshot); } + async function updateUserSetting(userId, settingName, settingValue) { + const remoteDb = await getDb(); + + return updateDoc(doc(remoteDb, `users/${userId}`), { + [`settings.${settingName}`]: settingValue + }); + } + window.db = { getDb, getUser, @@ -219,6 +227,7 @@ function getArrayFromQuerySnapshot(querySnapshot) { fetchItem, getPublicItemCount, getUserSubscriptionEvents, + updateUserSetting, local: dbLocalAlias, sync: dbSyncAlias };