Skip to content

Commit 0b70cd3

Browse files
committed
Theme: Toggle theme without passing boolean value
Adds new toggleTheme function, along with aliases for existing mf and useNewTheme functions Add new site in old site footer, and old site in new site footer, for console free toggling Add konami code to toggle
1 parent 49e6ed5 commit 0b70cd3

File tree

3 files changed

+56
-27
lines changed

3 files changed

+56
-27
lines changed

layouts/_default/baseof.html

Lines changed: 46 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,9 @@
2424

2525

2626
<script>
27-
28-
function useNewTheme(isNewTheme) {
29-
localStorage.setItem("useNewTheme", `${isNewTheme}`);
3027

28+
const setTheme = (isNewTheme) => {
29+
localStorage.setItem("useNewTheme", `${isNewTheme}`);
3130
// swap out v1 and v2 css style
3231
const v1cssIds = [
3332
"cssFA1",
@@ -39,35 +38,35 @@
3938
"css3",
4039
"css4",
4140
"css5",
42-
"css6"
41+
"css6",
4342
];
4443

4544
v1cssIds.forEach((cssId) => {
46-
const element = document.getElementById(cssId);
45+
const element = document.getElementById(cssId);
4746
if (element !== null) {
4847
element.disabled = isNewTheme;
4948
}
5049
});
5150

5251
const v2cssIds = ["css7"];
5352
v2cssIds.forEach((cssId) => {
54-
const element = document.getElementById(cssId);
53+
const element = document.getElementById(cssId);
5554
if (element !== null) {
5655
element.disabled = !isNewTheme;
5756
}
5857
});
5958

6059
// swap out v1 and v2 elements
61-
const v1ElementIds = ["sidebar", "footer", "toc"]
60+
const v1ElementIds = ["sidebar", "footer", "toc"];
6261

6362
v1ElementIds.forEach((elementId) => {
64-
const element = document.getElementById(elementId);
63+
const element = document.getElementById(elementId);
6564
if (element !== null) {
6665
element.style.display = isNewTheme ? "none" : "";
6766
}
6867

6968
const trustarc = document.getElementById("teconsent-v1");
70-
if(trustarc) {
69+
if (trustarc) {
7170
trustarc.id = isNewTheme ? "teconsent-v1" : "teconsent";
7271
}
7372
});
@@ -78,31 +77,51 @@
7877

7978
document.querySelectorAll(".highlight").forEach((codeblock) => {
8079
codeblock.style.display = isNewTheme ? "none" : "";
81-
})
80+
});
8281

8382
const mfElements = ['[data-mf="true"]'];
8483
mfElements.forEach((elementId) => {
85-
document.querySelectorAll(elementId).forEach(
86-
(element) => {
87-
element.style.display = isNewTheme ? "" : "none";
88-
89-
const trustarc = document.getElementById("teconsent-v2");
90-
if(trustarc) {
91-
trustarc.id = isNewTheme ? "teconsent" : "teconsent-v2";
92-
}
93-
}
94-
);
84+
document.querySelectorAll(elementId).forEach((element) => {
85+
element.style.display = isNewTheme ? "" : "none";
86+
87+
const trustarc = document.getElementById("teconsent-v2");
88+
if (trustarc) {
89+
trustarc.id = isNewTheme ? "teconsent" : "teconsent-v2";
90+
}
91+
});
9592
});
9693

9794
document.getElementById("body").style.visibility = "visible";
95+
};
96+
97+
const toggleTheme = () => {
98+
setTheme(!(localStorage.getItem("useNewTheme") === "true"));
99+
};
100+
101+
// toggle theme aliases
102+
const mf = toggleTheme;
103+
const useNewTheme = toggleTheme;
104+
105+
document.addEventListener("DOMContentLoaded", () => {
106+
setTheme(localStorage.getItem("useNewTheme") === "true");
107+
});
108+
109+
function konami(callback) {
110+
let kkeys = [];
111+
// up,up,down,down,left,right,left,right,B,A
112+
const konami = "38,38,40,40,37,39,37,39,66,65";
113+
return (event) => {
114+
kkeys.push(event.keyCode);
115+
if (kkeys.toString().indexOf(konami) >= 0) {
116+
callback(event);
117+
kkeys = [];
118+
}
119+
};
98120
}
99-
100-
const mf = useNewTheme;
101-
102-
document.addEventListener("DOMContentLoaded", function () {
103-
useNewTheme(localStorage.getItem("useNewTheme") === "true");
104-
})
105-
121+
const handler = konami(() => {
122+
mf();
123+
});
124+
window.addEventListener("keydown", handler);
106125

107126
</script>
108127

layouts/partials/footer-v2.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@
3434
target="_blank"
3535
>Do Not Sell My Personal Information
3636
</a>
37+
<a
38+
href="#"
39+
onclick="mf()"
40+
> Back to Old Site
41+
</a>
3742
<span id="teconsent-v2"></span>
3843
</div>
3944
</div>

layouts/partials/footer.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,11 @@
274274
>Do Not Sell My Personal Information</a
275275
>
276276
<span id="teconsent-v1"></span>
277+
<a
278+
href="#"
279+
onclick="mf()"
280+
>New Site Preview
281+
</a>
277282
</p>
278283
</div>
279284
</div>

0 commit comments

Comments
 (0)