-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathsettings.js
109 lines (97 loc) · 2.5 KB
/
settings.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
const defaultSettings = {
// difficulty: "hard", // TODO
theme: "light",
letters: "lowercase",
visibilityAssist: false,
};
let settings = defaultSettings;
(function () {
loadSettings();
applySettings();
updateTheme();
updateLetters();
updateVisibility();
document
.getElementById("settingsDialog")
.addEventListener("show", function () {
loadSettings();
applySettings();
});
document
.getElementById("settingsDialog")
.addEventListener("close", function () {
updateSettings();
updateTheme();
updateLetters();
updateVisibility();
});
})();
function loadSettings() {
if (localStorage.getItem("settings")) {
settings = JSON.parse(localStorage.getItem("settings"));
} else {
settings = defaultSettings;
}
}
function saveSettings() {
localStorage.setItem("settings", JSON.stringify(settings));
}
function applySettings() {
// document.getElementById("difficultySelect").value = settings.difficulty;
document.getElementById("themeSelect").value = settings.theme;
document.getElementById("letterSelect").value = settings.letters;
document.getElementById("visibilitySelect").value = settings.visibilityAssist;
}
function updateSettings() {
// settings.difficulty = document.getElementById("difficultySelect").value;
settings.theme = document.getElementById("themeSelect").value;
settings.letters = document.getElementById("letterSelect").value;
settings.visibilityAssist = document.getElementById("visibilitySelect").value;
saveSettings();
}
function updateTheme() {
if (settings.theme == "dark") {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}
}
function updateLetters() {
if (settings.letters == "uppercase") {
document.getElementById("letterGrid").classList.add("uppercase");
} else {
document.getElementById("letterGrid").classList.remove("uppercase");
}
}
function updateVisibility() {
if (!settings.visibilityAssist || settings.visibilityAssist === "false") {
document.getElementById("wordsList").classList.remove("assist");
} else {
document.getElementById("wordsList").classList.add("assist");
}
}
function getEmoji(index) {
if (!settings.visibilityAssist || settings.visibilityAssist === "false") {
switch (index) {
case 0:
return "🔴";
case 1:
return "🟠";
case 2:
return "🟢";
case 3:
return "🔵";
}
} else {
switch (index) {
case 0:
return "🔴";
case 1:
return "🔶";
case 2:
return "💚";
case 3:
return "🟦";
}
}
}