From f9920f6d736754372075c8f1014ab9440e333317 Mon Sep 17 00:00:00 2001
From: Brecht Savelkoul <brecht.savelkoul@alumni.lse.ac.uk>
Date: Fri, 13 Aug 2021 20:50:02 +0000
Subject: [PATCH] Execute darkmode script before first render

---
 assets/darkmode.js |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/assets/darkmode.js b/assets/darkmode.js
index 93bf6da..d95a281 100644
--- a/assets/darkmode.js
+++ b/assets/darkmode.js
@@ -1,14 +1,8 @@
-// Darkmode toggle
-const toggleSwitch = document.querySelector('#darkmode-toggle')
-
 const userPref = window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark'
 const currentTheme = localStorage.getItem('theme') ?? userPref
 
 if (currentTheme) {
   document.documentElement.setAttribute('saved-theme', currentTheme);
-  if (currentTheme === 'dark') {
-    toggleSwitch.checked = true
-  }
 }
 
 const switchTheme = (e) => {
@@ -22,5 +16,14 @@
   }
 }
 
-// listen for toggle
-toggleSwitch.addEventListener('change', switchTheme, false)
\ No newline at end of file
+window.addEventListener('DOMContentLoaded', () => {
+  // Darkmode toggle
+  const toggleSwitch = document.querySelector('#darkmode-toggle')
+
+  // listen for toggle
+  toggleSwitch.addEventListener('change', switchTheme, false)
+
+  if (currentTheme === 'dark') {
+    toggleSwitch.checked = true
+  }
+})

--
Gitblit v1.10.0