this.state.user.email = res.email;
this.state.user.notify = res.notify;
});
+ const supportedLangs = ["en","es","fr"];
+ this.state.lang = localStorage["lang"] ||
+ (supportedLangs.includes(navigator.language)
+ ? navigator.language
+ : "en");
+ this.setTranslations();
+ // Initialize connection (even if the current page doesn't need it)
this.state.conn = new WebSocket(params.socketUrl + "/?sid=" + mysid +
"&page=" + encodeURIComponent(page));
// Settings initialized with values from localStorage
this.state.settings = {
- bcolor: localStorage["bcolor"] || "lichess",
- sound: parseInt(localStorage["sound"]) || 2,
- hints: parseInt(localStorage["hints"]) || 1,
- coords: !!eval(localStorage["coords"]),
- highlight: !!eval(localStorage["highlight"]),
- sqSize: parseInt(localStorage["sqSize"]),
+ bcolor: localStorage.getItem("bcolor") || "lichess",
+ sound: parseInt(localStorage.getItem("sound")) || 1,
+ hints: localStorage.getItem("hints") == "true",
+ highlight: localStorage.getItem("highlight") == "true",
};
this.socketCloseListener = () => {
// Next line may fail at first, but should retry and eventually success (TODO?)
"&page=" + encodeURIComponent(page));
};
this.state.conn.onclose = this.socketCloseListener;
- const supportedLangs = ["en","es","fr"];
- this.state.lang = localStorage["lang"] ||
- (supportedLangs.includes(navigator.language)
- ? navigator.language
- : "en");
- this.setTranslations();
+ },
+ updateSetting: function(propName, value) {
+ this.state.settings[propName] = value;
+ localStorage.setItem(propName, value);
},
setTranslations: async function() {
// Import translations from "./translations/$lang.js"