From 309be489065eeb64b5058047e150e02508d143a7 Mon Sep 17 00:00:00 2001 From: Pavel Djundik Date: Sun, 15 Dec 2019 18:03:13 +0200 Subject: [PATCH] Fix synchronizing settings on page load --- client/js/settings.js | 5 +++-- client/js/socket-events/configuration.js | 1 - client/js/socket-events/init.js | 2 ++ client/js/store-settings.js | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/client/js/settings.js b/client/js/settings.js index 1bd96867..2b00fda9 100644 --- a/client/js/settings.js +++ b/client/js/settings.js @@ -10,8 +10,9 @@ export const config = normalizeConfig({ syncSettings: { default: true, sync: "never", - apply(store, value) { - if (value) { + apply(store, value, auto = false) { + // If applied by settings/applyAll, do not emit to server + if (value && !auto) { socket.emit("setting:get"); } }, diff --git a/client/js/socket-events/configuration.js b/client/js/socket-events/configuration.js index f619f30b..9c3e4eec 100644 --- a/client/js/socket-events/configuration.js +++ b/client/js/socket-events/configuration.js @@ -10,7 +10,6 @@ socket.once("configuration", function(data) { // 'theme' setting depends on serverConfiguration.themes so // settings cannot be applied before this point store.dispatch("settings/applyAll"); - socket.emit("setting:get"); if (data.fileUpload) { upload.initialize(); diff --git a/client/js/socket-events/init.js b/client/js/socket-events/init.js index 4174af2c..35eea927 100644 --- a/client/js/socket-events/init.js +++ b/client/js/socket-events/init.js @@ -22,6 +22,8 @@ socket.on("init", function(data) { store.commit("appLoaded"); + socket.emit("setting:get"); + if (window.g_TheLoungeRemoveLoading) { window.g_TheLoungeRemoveLoading(); } diff --git a/client/js/store-settings.js b/client/js/store-settings.js index f7c2278b..5caa5160 100644 --- a/client/js/store-settings.js +++ b/client/js/store-settings.js @@ -27,7 +27,7 @@ export function createSettingsStore(store) { }, applyAll({state}) { for (const settingName in config) { - config[settingName].apply(store, state[settingName]); + config[settingName].apply(store, state[settingName], true); } }, update({state, commit}, {name, value, sync = false}) {