added experimental theming system

This commit is contained in:
SethBurkart123
2023-10-29 16:16:31 +11:00
parent d723c128e4
commit f28cb23656
6 changed files with 118 additions and 137 deletions
+22 -4
View File
@@ -4,18 +4,19 @@ import { MenuOptionsOpen, OpenMenuOptions, closeSettings } from "../../SEQTA.js"
export class MessageHandler {
constructor() {
// Register this class as the message handler for the Chrome extension
chrome.runtime.onMessage.addListener(this.routeMessage.bind(this));
}
routeMessage(request) {
// You can use a switch-case or an object to route the message to the correct handler
switch (request.info) {
case "EditSidebar":
this.editSidebar();
break;
// Add more cases as needed
case "Theme":
console.log("Theme message received");
break;
default:
console.log("Unknown request info:", request.info);
@@ -30,4 +31,21 @@ export class MessageHandler {
}
// Add more methods for handling other message types
}
}
/* // Apply theme from the message
async function applyThemeFromMessage(themeData) {
const style = document.createElement("style");
style.innerHTML = themeData.css;
document.head.appendChild(style);
document.body.className = themeData.className;
if (themeData.images) {
for (const [cssVar, objectURL] of Object.entries(themeData.images)) {
document.documentElement.style.setProperty(cssVar, `url(${objectURL})`);
}
} else {
console.error("themeData.images is not defined!");
}
} */