mirror of
https://github.com/nuttylmao/nutty.gg.git
synced 2026-09-19 04:00:59 -04:00
Load Settings button now automatically refreshes the widget preview
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user