Skip to content

Commit 7684adf

Browse files
authored
Create dynamic tooltip text (cloudflare#7561)
1 parent 2942422 commit 7684adf

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

assets/theme.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
let btn: HTMLInputElement;
44
let media: MediaQueryList | void;
55

6-
if (document.readyState !== 'loading') init();
7-
else addEventListener('DOMContentLoaded', init);
6+
if (document.readyState !== "loading") init();
7+
else addEventListener("DOMContentLoaded", init);
88

9-
btn = document.querySelector('#ThemeToggle')!;
9+
btn = document.querySelector("#ThemeToggle")!;
1010
tooEarly = !btn;
1111

1212
function setter(isDark: boolean) {
1313
try {
14-
let theme = isDark ? 'dark' : 'light';
15-
document.documentElement.setAttribute('theme', theme);
14+
let theme = isDark ? "dark" : "light";
15+
document.documentElement.setAttribute("theme", theme);
1616
localStorage.theme = JSON.stringify({ theme });
1717

1818
if (btn) {
@@ -24,14 +24,22 @@
2424
} catch (err) {
2525
// security error
2626
}
27+
// set tooltip text
28+
if (isDark) {
29+
document.getElementById("ThemeToggle--tooltip").innerHTML =
30+
"Set theme to light (⇧+D)";
31+
} else {
32+
document.getElementById("ThemeToggle--tooltip").innerHTML =
33+
"Set theme to dark (⇧+D)";
34+
}
2735
}
2836

2937
function init() {
30-
btn = btn || document.querySelector('#ThemeToggle')!;
31-
btn.addEventListener('change', () => setter(!!btn.checked));
38+
btn = btn || document.querySelector("#ThemeToggle")!;
39+
btn.addEventListener("change", () => setter(!!btn.checked));
3240

3341
// Shift+D for toggle
34-
addEventListener('keydown', ev => {
42+
addEventListener("keydown", (ev) => {
3543
if (ev.target !== document.body) return;
3644
if (ev.which === 68 && ev.shiftKey) {
3745
ev.preventDefault();
@@ -41,8 +49,8 @@
4149
}
4250

4351
try {
44-
media = window.matchMedia('(prefers-color-scheme:dark)');
45-
media.onchange = ev => setter(ev.matches);
52+
media = window.matchMedia("(prefers-color-scheme:dark)");
53+
media.onchange = (ev) => setter(ev.matches);
4654
} catch (err) {
4755
// no support
4856
}

layouts/partials/topbar.theme.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
</div>
2121
</label>
2222

23-
<span class="Tooltip" role="tooltip" position="bottom-end">Set theme to dark (⇧+D)</span>
23+
<span class="Tooltip" id="ThemeToggle--tooltip" role="tooltip" position="bottom-end">Set theme to dark (⇧+D)</span>
2424
</div>
2525
</div>

0 commit comments

Comments
 (0)