Quellcode durchsuchen

Fixing darkModeToggle listener (#577)

If hideColorSchemeToggle is true, darkModeToggle will not be rendered and adding a listener to a non-existing object will cause error.
Kirill Feoktistov vor 4 Jahren
Ursprung
Commit
4bb81da844
3 geänderte Dateien mit 8 neuen und 4 gelöschten Zeilen
  1. 1 0
      .gitignore
  2. 1 0
      CONTRIBUTORS.md
  3. 6 4
      assets/js/coder.js

+ 1 - 0
.gitignore

@@ -1,3 +1,4 @@
+.idea
 **/themes/
 exampleSite/public/
 exampleSite/resources/

+ 1 - 0
CONTRIBUTORS.md

@@ -98,3 +98,4 @@
 - [cuso4-5h2o](https://www.cuso4.me)
 - [freeformz](https://icanhazdowntime.org)
 - [Roberto Gongora](https://yourfavourite.blog)
+- [Kirill Feoktistov](https://feoktistoff.org)

+ 6 - 4
assets/js/coder.js

@@ -11,9 +11,11 @@ if (localStorage.getItem("colorscheme")) {
     setTheme(darkModeMediaQuery.matches ? "dark" : "light");
 }
 
-darkModeToggle.addEventListener('click', () => {
-    setTheme(body.classList.contains("colorscheme-dark") ? "light" : "dark");
-});
+if (darkModeToggle) {
+    darkModeToggle.addEventListener('click', () => {
+        setTheme(body.classList.contains("colorscheme-dark") ? "light" : "dark");
+    });
+}
 
 darkModeMediaQuery.addListener((event) => {
     setTheme(event.matches ? "dark" : "light");
@@ -26,7 +28,7 @@ document.addEventListener("DOMContentLoaded", function () {
 
 function setTheme(theme) {
     body.classList.remove('colorscheme-auto');
-    inverse = theme === 'dark' ? 'light' : 'dark';
+    const inverse = theme === 'dark' ? 'light' : 'dark';
     localStorage.setItem('colorscheme', theme);
     body.classList.remove('colorscheme-' + inverse);
     body.classList.add('colorscheme-' + theme);