Local storage now saves unique settings per widget, instead of per domain

This commit is contained in:
nuttylmao
2025-05-07 17:16:53 +10:00
parent 74f8196d7d
commit 8ede5e7116
+7 -3
View File
@@ -19,6 +19,10 @@ const unmuteLabel = document.getElementById('unmute-label');
// Global variables // Global variables
let settingsMap = new Map(); let settingsMap = new Map();
// Construct local storage key prefix so that each widget has their own unique settings
const parts = widgetURL.replace(/\/+$/, '').split('/');
const keyPrefix = parts[parts.length - 1];
// Set visibility of the unmute indicator // Set visibility of the unmute indicator
if (showUnmuteIndicator) if (showUnmuteIndicator)
unmuteLabel.style.display = 'inline'; unmuteLabel.style.display = 'inline';
@@ -229,12 +233,12 @@ function SaveSettingsToStorage() {
console.log(settingsMap); console.log(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('settingsMap', settingsArrayString); localStorage.setItem(`${keyPrefix}-settings`, settingsArrayString);
} }
function LoadSettingsFromStorage() { function LoadSettingsFromStorage() {
// Retrieve session rankings from local storage // Retrieve session rankings from local storage
const settingsMapString = localStorage.getItem('settingsMap'); const settingsMapString = localStorage.getItem(`${keyPrefix}-settings`);
if (settingsMapString) { if (settingsMapString) {
const settingsMapArray = JSON.parse(settingsMapString); const settingsMapArray = JSON.parse(settingsMapString);
settingsMap = new Map(settingsMapArray); settingsMap = new Map(settingsMapArray);
@@ -242,7 +246,7 @@ function LoadSettingsFromStorage() {
} }
function LoadDefaultSettings() { function LoadDefaultSettings() {
localStorage.removeItem('settingsMap'); localStorage.removeItem(`${keyPrefix}-settings`);
settingsMap = new Map(); settingsMap = new Map();
LoadJSON(settingsJson); LoadJSON(settingsJson);