Load Settings button now automatically refreshes the widget preview

This commit is contained in:
nuttylmao
2025-05-09 19:06:05 +10:00
parent dd832175a8
commit 3f55e3d2fb
2 changed files with 13 additions and 6 deletions
+9 -5
View File
@@ -17,6 +17,7 @@ const loadSettingsBox = document.getElementById('loadSettingsWrapper');
const unmuteLabel = document.getElementById('unmute-label'); const unmuteLabel = document.getElementById('unmute-label');
// Global variables // Global variables
let settingsData = '';
let settingsMap = new Map(); let settingsMap = new Map();
// Construct local storage key prefix so that each widget has their own unique settings // Construct local storage key prefix so that each widget has their own unique settings
@@ -40,6 +41,8 @@ function LoadJSON(settingsJson) {
fetch(settingsJson) fetch(settingsJson)
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
settingsData = data;
// Clear the settings panel // Clear the settings panel
settingsPanel.innerHTML = ''; settingsPanel.innerHTML = '';
@@ -201,7 +204,7 @@ function LoadJSON(settingsJson) {
settingsMap.set(setting.id, settingElement.value); settingsMap.set(setting.id, settingElement.value);
SaveSettingsToStorage(); SaveSettingsToStorage();
RefreshWidgetPreview(data); RefreshWidgetPreview();
}); });
settingItemContent.appendChild(inputElement); settingItemContent.appendChild(inputElement);
@@ -233,14 +236,14 @@ function LoadJSON(settingsJson) {
} }
UpdateSettingItemVisibility(); UpdateSettingItemVisibility();
RefreshWidgetPreview(data); RefreshWidgetPreview();
SaveSettingsToStorage(); SaveSettingsToStorage();
}) })
.catch(error => console.error('Error loading settings:', error)); .catch(error => console.error('Error loading settings:', error));
} }
function SaveSettingsToStorage() { function SaveSettingsToStorage() {
console.log(settingsMap); console.debug(settingsMap);
const settingsArray = Array.from(settingsMap.entries()); const settingsArray = Array.from(settingsMap.entries());
const settingsArrayString = JSON.stringify(settingsArray); const settingsArrayString = JSON.stringify(settingsArray);
localStorage.setItem(`${keyPrefix}-settings`, settingsArrayString); localStorage.setItem(`${keyPrefix}-settings`, settingsArrayString);
@@ -264,9 +267,9 @@ function LoadDefaultSettings() {
loadDefaultsBox.style.opacity = 0; loadDefaultsBox.style.opacity = 0;
} }
function RefreshWidgetPreview(data) { function RefreshWidgetPreview() {
const settings = {}; const settings = {};
data.settings.forEach(setting => { settingsData.settings.forEach(setting => {
let inputElement = document.getElementById(setting.id); let inputElement = document.getElementById(setting.id);
if (setting.type === 'checkbox') { if (setting.type === 'checkbox') {
@@ -411,6 +414,7 @@ function LoadSettings() {
inputElement.checked = value.toLocaleLowerCase() == 'true'; inputElement.checked = value.toLocaleLowerCase() == 'true';
else else
inputElement.value = value; inputElement.value = value;
inputElement.dispatchEvent(new Event('input')); // Triggers the page refresh
} }
}); });
+4 -1
View File
@@ -98,7 +98,10 @@ body {
pointer-events: none; pointer-events: none;
font-size: 3em; font-size: 3em;
font-weight: 500; font-weight: 500;
color: rgba(255, 255, 255, 0.7); color: rgba(255, 255, 255);
background-color: rgba(255, 255, 255, 0.3);
padding: 0.25em 0.5em;
border-radius: 0.25em;
display: none; display: none;
} }