thelounge/client/js/socket-events/setting.js
Tim Miller-Williams 25da9dd63e Rework settings such that all behavior for each setting is kept together
Behavior includes: default value, whether setting should be synced, and
an optional 'apply' callback which is called when setting is changed in
Vuex.
2019-11-25 20:12:59 +02:00

20 lines
522 B
JavaScript

"use strict";
const socket = require("../socket");
const store = require("../store").default;
socket.on("setting:new", function(data) {
const name = data.name;
const value = data.value;
store.dispatch("settings/update", {name, value, sync: false});
});
socket.on("setting:all", function(settings) {
if (Object.keys(settings).length === 0) {
store.dispatch("settings/syncAll");
} else {
for (const name in settings) {
store.dispatch("settings/update", {name, value: settings[name], sync: false});
}
}
});