From 86acfa5b7c3dda7ee11ca3339097d67ace77b378 Mon Sep 17 00:00:00 2001 From: rainbow napkin Date: Sat, 3 Oct 2026 08:10:07 -0400 Subject: [PATCH 1/5] Fixed popped panels to display as selected theme. --- www/js/channel/cpanel.js | 3 +++ www/js/channel/panels/settingsPanel.js | 12 +++++++++++- www/js/themeManager.js | 25 ++++++++++++++++--------- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/www/js/channel/cpanel.js b/www/js/channel/cpanel.js index b426857..22d65e7 100644 --- a/www/js/channel/cpanel.js +++ b/www/js/channel/cpanel.js @@ -406,6 +406,9 @@ class poppedPanel{ * Fills container window with Popped Panel container elements */ fillContainer(){ + //Apply theme + this.window.document.head.appendChild(ThemeManager.genThemeLink()); + //Set Element Nodes this.panelDiv = this.window.document.querySelector("#cpanel-div"); this.panelTitle = this.window.document.querySelector("#cpanel-title"); diff --git a/www/js/channel/panels/settingsPanel.js b/www/js/channel/panels/settingsPanel.js index 5df8369..84e5395 100644 --- a/www/js/channel/panels/settingsPanel.js +++ b/www/js/channel/panels/settingsPanel.js @@ -111,6 +111,16 @@ class settingsPanel extends panelObj{ } fillThemes(){ + //Find theme selector + const selector = this.theme.querySelector('select'); + + //If the theme selector has already been filled or doesnt exist + if(selector == null || selector.childElementCount > 0){ + //Stop while we're ahead + return; + } + + //For each theme for(let themeName of ThemeManager.themes.keys()){ //Create theme option let option = document.createElement('option'); @@ -120,7 +130,7 @@ class settingsPanel extends panelObj{ option.innerText = themeName; //Add option to theme selector - this.theme.querySelector('select').appendChild(option); + selector.appendChild(option); } } diff --git a/www/js/themeManager.js b/www/js/themeManager.js index b7d2570..e5a260e 100644 --- a/www/js/themeManager.js +++ b/www/js/themeManager.js @@ -49,7 +49,7 @@ class themeManager{ * Sets theme by name * @param {String} theme - name of theme to set, keep blank for default theme */ - setTheme(theme){ + setTheme(theme = localStorage.getItem("theme")){ //If we didnt get a theme to set if(theme == null){ //Use the first theme in the list @@ -63,14 +63,7 @@ class themeManager{ } //Create new link element and use it to set themeLink - this.themeLink = document.createElement('link'); - - //Set themeLink attributes - this.themeLink.type = "text/css"; - this.themeLink.rel = "stylesheet"; - - //Set theme href to theme location - this.themeLink.href = this.themes.get(theme); + this.themeLink = this.genThemeLink(theme); //Append themeLink to header document.querySelector('head').appendChild(this.themeLink); @@ -78,6 +71,20 @@ class themeManager{ //Save theme choice to local storage localStorage.setItem("theme", theme); } + + genThemeLink(theme = localStorage.getItem("theme")){ + //Create new link element and use it to set themeLink + const themeLink = document.createElement('link'); + + //Set themeLink attributes + themeLink.type = "text/css"; + themeLink.rel = "stylesheet"; + + //Set theme href to theme location + themeLink.href = this.themes.get(theme); + + return themeLink; + } } ThemeManager = new themeManager(); \ No newline at end of file From af6332890d3f59b40e90aadc354f7dc6dbe04203 Mon Sep 17 00:00:00 2001 From: rainbow napkin Date: Sat, 3 Oct 2026 08:10:59 -0400 Subject: [PATCH 2/5] Removed unnessicary console logs --- www/js/channel/channel.js | 4 ---- www/js/channel/panels/settingsPanel.js | 2 -- www/js/migrate.js | 2 -- 3 files changed, 8 deletions(-) diff --git a/www/js/channel/channel.js b/www/js/channel/channel.js index f966c8b..d0515a4 100644 --- a/www/js/channel/channel.js +++ b/www/js/channel/channel.js @@ -251,7 +251,6 @@ class channel{ //If we're playing a video from Internet Archive if(nowPlaying != null && nowPlaying.type == 'ia'){ - console.log("RELOAD"); //Hard reload the media, forcing media handler re-creation this.player.hardReload(); } @@ -319,9 +318,6 @@ class channel{ return; } - console.log(value); - console.log((value == true || value == "true") ? "none" : "unset"); - //Convert string to bool and use it to set visibility of send button this.chatBox.sendButton.style.display = (value == true || value == "true") ? "none" : "unset"; return; diff --git a/www/js/channel/panels/settingsPanel.js b/www/js/channel/panels/settingsPanel.js index 84e5395..8818564 100644 --- a/www/js/channel/panels/settingsPanel.js +++ b/www/js/channel/panels/settingsPanel.js @@ -289,8 +289,6 @@ class settingsPanel extends panelObj{ * Handles change toggle of disable/enable send buttton */ updateDisableSendButton(){ - console.log(this.disableSendButton); - console.log(this.disableSendButton.checked); localStorage.setItem('disableSendButton', this.disableSendButton.checked); client.processConfig("disableSendButton", this.disableSendButton.checked); } diff --git a/www/js/migrate.js b/www/js/migrate.js index 3841847..4925543 100644 --- a/www/js/migrate.js +++ b/www/js/migrate.js @@ -38,8 +38,6 @@ class migratePrompt{ //Add verification event listener to altcha widget this.altcha.addEventListener("verified", this.verify.bind(this)); - console.log(this.button); - //Add migrate event listener to migrate button this.button.addEventListener("click", this.migrate.bind(this)); } From 53f23a5ab45714dda2eb736467d410a0c1176ca4 Mon Sep 17 00:00:00 2001 From: rainbow napkin Date: Sat, 3 Oct 2026 08:37:20 -0400 Subject: [PATCH 3/5] Fixed rendering bug in settingsPanel --- www/js/channel/panels/settingsPanel.js | 1 + 1 file changed, 1 insertion(+) diff --git a/www/js/channel/panels/settingsPanel.js b/www/js/channel/panels/settingsPanel.js index 8818564..62daf0e 100644 --- a/www/js/channel/panels/settingsPanel.js +++ b/www/js/channel/panels/settingsPanel.js @@ -165,6 +165,7 @@ class settingsPanel extends panelObj{ this.theme.querySelector('select').value = localStorage.getItem("theme"); this.chatWidthMinimum.value = localStorage.getItem("chatWidthMin"); this.disablePortrait.checked = localStorage.getItem("disablePortrait") == 'true'; + this.disableSendButton.checked = localStorage.getItem("disableSendButton") == 'true'; this.rxPMSound.value = localStorage.getItem('rxPMSound'); this.txPMSound.checked = localStorage.getItem('txPMSound') == 'true'; this.newSeshSound.checked = localStorage.getItem('newSeshSound') == 'true'; From 3acf817f8b1c97d6dac912e613ea7c601e1eec47 Mon Sep 17 00:00:00 2001 From: rainbow napkin Date: Sat, 3 Oct 2026 10:03:16 -0400 Subject: [PATCH 4/5] Update input styles --- www/css/theme/the-network.css | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/www/css/theme/the-network.css b/www/css/theme/the-network.css index c6412e6..3f81803 100644 --- a/www/css/theme/the-network.css +++ b/www/css/theme/the-network.css @@ -111,6 +111,10 @@ div.interactive:active{ background-color: var(--bg1); } +:not(button) > i{ + color: var(--accent0-alt1); +} + button i{ margin: 0.05em; text-wrap: nowrap; @@ -123,6 +127,8 @@ select{ border: none; } + + button{ background-color: var(--bg0); color: var(--accent0); @@ -153,6 +159,8 @@ input:checked{ } input:not([type='checkbox']):not(.navbar-item), textarea { + background-color: var(--bg2); + color: var(--accent0); border-radius: 1em; border: none; padding: 0.1em 0.5em; From 5fb2609d623ef492b434389b71958f5ca3f4c3b0 Mon Sep 17 00:00:00 2001 From: rainbow napkin Date: Mon, 5 Oct 2026 18:20:38 -0400 Subject: [PATCH 5/5] Update default config to match popular preferences. --- www/js/channel/channel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/js/channel/channel.js b/www/js/channel/channel.js index d0515a4..a7e0498 100644 --- a/www/js/channel/channel.js +++ b/www/js/channel/channel.js @@ -357,7 +357,7 @@ class channel{ ["chatWidthMin", 20], ["disablePortrait", false], ["disableSendButton", false], - ["userlistHidden", false], + ["userlistHidden", true], ["cinemaMode", false], ["rxPMSound", 'unread'], ["txPMSound", false],