diff --git a/src/stores/sync_config.js b/src/stores/sync_config.js index e9a4a278e..8b6bc0913 100644 --- a/src/stores/sync_config.js +++ b/src/stores/sync_config.js @@ -3,6 +3,7 @@ import { merge as _merge, clamp, cloneDeep, + debounce, findLastIndex, flatten, get, @@ -446,6 +447,18 @@ const _doMigrations = async (data, setPreference) => { return data } +const _pushSyncConfig = debounce((force, root) => { + const needPush = root.dirty || force + if (!needPush) return + root.updateCache({ username: window.vuex.state.users.currentUser.fqn }) + const params = { pleroma_settings_store: { 'pleroma-fe': root.cache } } + window.vuex.state.api.backendInteractor + .updateProfileJSON({ params }) + .then((user) => { + root.initSyncConfig(user) + root.dirty = false + }) +}, 5000) export const useSyncConfigStore = defineStore('sync_config', { state() { @@ -701,12 +714,7 @@ export const useSyncConfigStore = defineStore('sync_config', { this.pushSyncConfig() }, pushSyncConfig({ force = false } = {}) { - const needPush = this.dirty || force - if (!needPush) return - this.updateCache({ username: window.vuex.state.users.currentUser.fqn }) - const params = { pleroma_settings_store: { 'pleroma-fe': this.cache } } - window.vuex.state.api.backendInteractor - .updateProfileJSON({ params }) + _pushSyncConfig(force, this) }, }, getters: {