From eec515f2b09accf225bbaf6a0625bb0d5924314c Mon Sep 17 00:00:00 2001 From: 0neGal Date: Sat, 20 Jan 2024 02:20:05 +0100 Subject: fixed settings cog sometimes not moving If the settings popup was opened or closed through other means than clicking the settings button itself, "Save" button or "Discord" button, then the cog wouldn't update/rotate accordingly. --- src/app/js/popups.js | 5 +++++ src/app/js/settings.js | 27 ++++++++++++++------------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/app/js/popups.js b/src/app/js/popups.js index 553358a..7411180 100644 --- a/src/app/js/popups.js +++ b/src/app/js/popups.js @@ -24,6 +24,11 @@ popups.set = (popup, state, auto_close_all = true) => { overlay.classList.remove("shown"); popup_el.classList.remove("shown"); } + + events.emit("popup-changed", { + popup: popup_el, + new_state: state + }) } popups.show = (popup, auto_close_all = true) => { diff --git a/src/app/js/settings.js b/src/app/js/settings.js index a333e8b..78a951e 100644 --- a/src/app/js/settings.js +++ b/src/app/js/settings.js @@ -4,19 +4,6 @@ var Settings = { options.scrollTo(0, 0); popups.set("#options", state); - let settings_btn = document.getElementById("settings"); - - if (state) { - settings_btn.classList.add("shown"); - return; - } else if (state === false) { - if (state != undefined) { - settings_btn.classList.remove("shown"); - return; - } - } - - settings_btn.classList.toggle("shown"); }, apply: () => { settings = {...settings, ...Settings.get()}; @@ -120,6 +107,20 @@ var Settings = { } } +events.on("popup-changed", () => { + let settings_is_shown = + document.getElementById("options") + .classList.contains("shown"); + + let settings_btn = document.getElementById("settings"); + + if (settings_is_shown) { + settings_btn.classList.add("shown"); + } else { + settings_btn.classList.remove("shown"); + } +}) + document.body.addEventListener("click", (e) => { let el = document.elementFromPoint(e.clientX, e.clientY); Settings.switch(el); -- cgit v1.2.3