Skip to content

Commit bdb0d26

Browse files
authored
add uww toggle (#6824)
1 parent 7062b8d commit bdb0d26

File tree

2 files changed

+63
-25
lines changed

2 files changed

+63
-25
lines changed

src/components/Layout/Footer.tsx

+16
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,22 @@ export function Footer() {
285285
dir="ltr">
286286
©{new Date().getFullYear()}
287287
</div>
288+
<div
289+
className="uwu-visible text-xs cursor-pointer hover:text-link hover:dark:text-link-dark hover:underline"
290+
onClick={() => {
291+
// @ts-ignore
292+
window.__setUwu(false);
293+
}}>
294+
no uwu plz
295+
</div>
296+
<div
297+
className="uwu-hidden text-xs cursor-pointer hover:text-link hover:dark:text-link-dark hover:underline"
298+
onClick={() => {
299+
// @ts-ignore
300+
window.__setUwu(true);
301+
}}>
302+
uwu?
303+
</div>
288304
<div className="uwu-visible text-xs">
289305
Logo by
290306
<ExternalLink

src/pages/_document.tsx

+47-25
Original file line numberDiff line numberDiff line change
@@ -22,37 +22,59 @@ const MyDocument = () => {
2222
<script
2323
dangerouslySetInnerHTML={{
2424
__html: `
25-
(function () {
26-
try {
27-
var preferredUwu;
25+
(function () {
26+
try {
27+
let logShown = false;
28+
function setUwu(isUwu) {
2829
try {
29-
preferredUwu = localStorage.getItem('uwu');
30-
} catch (err) { }
31-
32-
const isUwuValue = window.location
33-
&& window.location.search
34-
&& window.location.search.match(/uwu=(true|false)/);
35-
36-
if (isUwuValue) {
37-
const isUwu = isUwuValue[1] === 'true';
3830
if (isUwu) {
39-
try {
40-
localStorage.setItem('uwu', true);
41-
} catch (err) { }
31+
localStorage.setItem('uwu', true);
4232
document.documentElement.classList.add('uwu');
43-
console.log('uwu mode enabled. turn off with ?uwu=false')
44-
console.log('logo credit to @sawaratsuki1004 via https://github.com/SAWARATSUKI/ServiceLogos');
33+
if (!logShown) {
34+
console.log('uwu mode! turn off with ?uwu=0');
35+
console.log('logo credit to @sawaratsuki1004 via https://github.com/SAWARATSUKI/ServiceLogos');
36+
logShown = true;
37+
}
4538
} else {
46-
try {
47-
localStorage.removeItem('uwu', false);
48-
} catch (err) { }
39+
localStorage.removeItem('uwu');
40+
document.documentElement.classList.remove('uwu');
41+
console.log('uwu mode off. turn on with ?uwu');
4942
}
50-
} else if (preferredUwu) {
51-
document.documentElement.classList.add('uwu');
43+
} catch (err) { }
44+
}
45+
window.__setUwu = setUwu;
46+
function checkQueryParam() {
47+
const params = new URLSearchParams(window.location.search);
48+
const value = params.get('uwu');
49+
switch(value) {
50+
case '':
51+
case 'true':
52+
case '1':
53+
return true;
54+
case 'false':
55+
case '0':
56+
return false;
57+
default:
58+
return null;
5259
}
53-
} catch (err) { }
54-
})();
55-
`,
60+
}
61+
function checkLocalStorage() {
62+
try {
63+
return localStorage.getItem('uwu') === 'true';
64+
} catch (err) {
65+
return false;
66+
}
67+
}
68+
const uwuQueryParam = checkQueryParam();
69+
console.log('uwuQueryParam', uwuQueryParam);
70+
if (uwuQueryParam != null) {
71+
setUwu(uwuQueryParam);
72+
} else if (checkLocalStorage()) {
73+
document.documentElement.classList.add('uwu');
74+
}
75+
} catch (err) { }
76+
})();
77+
`,
5678
}}
5779
/>
5880
<script

0 commit comments

Comments
 (0)