Moved save settings to actions

This commit is contained in:
Roman Cervantes 2019-10-18 11:15:09 -07:00
parent 622dd14a26
commit 86396dd8c4
4 changed files with 22 additions and 25 deletions

View file

@ -24,7 +24,6 @@ import NavHeader from '@/components/NavHeader';
import Toast from '@/components/Toast';
import firebase from 'firebase/app';
import { mapState } from 'vuex';
import { debounce } from 'lodash';
import 'firebase/auth';
import 'firebase/firestore';
import 'firebase/storage';
@ -105,14 +104,12 @@ export default {
},
mounted() {
this.$bus.$on('SAVE_SETTINGS', this.saveSettings);
this.$bus.$on('SAVE_TAGS', this.saveTags);
this.$bus.$on('SAVE_NOTES', this.saveNotes);
this.init();
},
beforeDestroy() {
this.$bus.$off('SAVE_SETTINGS');
this.$bus.$off('SAVE_TAGS');
this.$bus.$off('SAVE_NOTES');
},
@ -170,21 +167,6 @@ export default {
});
},
saveSettings: debounce(
// eslint-disable-next-line
function(settings) {
// TOOD: move to actions
db.collection('settings').doc(this.user.uid).set(settings, { merge: true })
.then(() => {
this.$store.commit('SET_SETTINGS', settings);
this.$bus.$emit('TOAST', { message: 'Settings saved' });
})
.catch(() => {
this.$bus.$emit('TOAST', { message: 'There was an error saving your settings', type: 'error' });
this.$router.push({ name: 'sessionExpired' });
});
}, 500),
saveTags(tags, force) {
if (tags) {
// TOOD: move to actions

View file

@ -109,12 +109,8 @@ export default {
wallpapers: this.wallpapers,
};
const db = firebase.firestore();
// TOOD: move to actions
db.collection('settings').doc(this.user.uid).set(settings)
this.$store.dispatch('SAVE_SETTINGS', settings)
.then(() => {
this.$store.commit('SET_SETTINGS', settings);
this.$bus.$emit('TOAST', { message: 'Settings saved' });
this.loading = false;
})

View file

@ -102,8 +102,14 @@ export default {
methods: {
save() {
// TODO: call action directly
this.$bus.$emit('SAVE_SETTINGS', this.localSettings);
this.$store.dispatch('SAVE_SETTINGS', this.localSettings)
.then(() => {
this.$bus.$emit('TOAST', { message: 'Settings saved' });
})
.catch(() => {
this.$bus.$emit('TOAST', { message: 'There was an error saving your settings', type: 'error' });
this.$router.push({ name: 'sessionExpired' });
});
},
deleteAccount() {

View file

@ -24,6 +24,19 @@ export default {
});
},
SAVE_SETTINGS({ commit, state }, settings) {
const db = firebase.firestore();
return new Promise((resolve, reject) => {
db.collection('settings').doc(state.user.uid).set(settings, { merge: true })
.then(() => {
commit('SET_SETTINGS', settings);
resolve();
})
.catch(reject);
});
},
LOAD_RELEASES({ commit }) {
return new Promise((resolve, reject) => {
axios.get('https://api.github.com/repos/romancm/gamebrary/releases')