From 3b4c6cf5f1b243c387104b1f5e64ea930875a636 Mon Sep 17 00:00:00 2001 From: kritzl Date: Tue, 16 Jul 2024 19:19:07 +0200 Subject: [PATCH] move scripts --- src/vinywaji/gui/static/base.js | 36 ++++++++++++++++++++++++++++ src/vinywaji/gui/templates/base.html | 36 ---------------------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/vinywaji/gui/static/base.js b/src/vinywaji/gui/static/base.js index 7950d56..4127916 100644 --- a/src/vinywaji/gui/static/base.js +++ b/src/vinywaji/gui/static/base.js @@ -19,3 +19,39 @@ document.querySelectorAll("form.js-submit") form.reset() location.reload() })); + +let mode = localStorage.theme ?? 'system'; + +function updateMode() { + if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) { + document.documentElement.classList.add('dark') + } else { + document.documentElement.classList.remove('dark') + } + + document.querySelector('#modeSwitch > [data-icon]').dataset.icon = mode; +} + +updateMode(); + +function switchMode() { + switch (mode) { + case 'light': + localStorage.theme = 'dark'; + mode = 'dark'; + break; + case 'dark': + localStorage.removeItem('theme') + mode = 'system'; + break; + case 'system': + localStorage.theme = 'light'; + mode = 'light'; + break; + } + updateMode(); +} + +document.querySelector('#modeSwitch').addEventListener('click', (e) => { + switchMode(); +}) diff --git a/src/vinywaji/gui/templates/base.html b/src/vinywaji/gui/templates/base.html index 88643c9..68fbfe0 100644 --- a/src/vinywaji/gui/templates/base.html +++ b/src/vinywaji/gui/templates/base.html @@ -44,42 +44,6 @@ {% include "components/footer.html" %} {% block scripts %} - {% block scripts-extra %}{% endblock %} {% endblock %} {% endblock %}