From 266d996237486306cac3f438a848f9855cf3d9f9 Mon Sep 17 00:00:00 2001 From: Sijisu Date: Tue, 3 Aug 2021 18:44:50 +0000 Subject: [PATCH] Update themes/patek/assets/js/dark-mode.js --- themes/patek/assets/js/dark-mode.js | 32 +++++++++++++++++------------ 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/themes/patek/assets/js/dark-mode.js b/themes/patek/assets/js/dark-mode.js index d5c45b0..4c18eb9 100644 --- a/themes/patek/assets/js/dark-mode.js +++ b/themes/patek/assets/js/dark-mode.js @@ -1,22 +1,28 @@ function restoreDarkmode() { - const elem = document.getElementById("content"); - if (elem && document.cookie.includes("dark-mode=true")) { - elem.classList.add("dark-mode"); + const prefersDarkMode = window.matchMedia("(prefers-color-scheme: dark)"); + const elem = document.getElementById("content"); + if(!document.cookie.includes("dark-mode=")) { + if (prefersDarkMode.matches) { + elem.classList.add("dark-mode"); + } + } + if (elem && document.cookie.includes("dark-mode=on")) { + elem.classList.add("dark-mode"); } } function toggleDarkmode() { - const elem = document.getElementById("content"); - if (elem) { - const state = elem.classList.toggle("dark-mode"); - if (state) { + const elem = document.getElementById("content"); + if (elem) { + const state = elem.classList.toggle('dark-mode'); + if (state) { // 31536000 = 1 year; not setting max-age would make it session bound - document.cookie = "dark-mode=true; path=/; max-age=31536000; secure; samesite=strict"; - } else { - // Delete the cookie by immediately expiring it - document.cookie = "dark-mode=; path=/; max-age=0; secure; samesite=strict"; - } - } + document.cookie = 'dark-mode=on; path=/; max-age=31536000; secure; samesite=strict'; + } else { + // We have to set the off preference as well, so it can override the OS setting + document.cookie = 'dark-mode=off; path=/; max-age=31536000; secure; samesite=strict'; + } + } } document.addEventListener("DOMContentLoaded", restoreDarkmode);