summaryrefslogtreecommitdiff
path: root/inject-css.js
diff options
context:
space:
mode:
Diffstat (limited to 'inject-css.js')
-rw-r--r--inject-css.js30
1 files changed, 19 insertions, 11 deletions
diff --git a/inject-css.js b/inject-css.js
index 6b3aaf8..b7c89fe 100644
--- a/inject-css.js
+++ b/inject-css.js
@@ -2,19 +2,27 @@ browser.storage.local.get("transparentZenSettings").then((settings) => {
if (settings.transparentZenSettings?.enableStyling) {
browser.storage.local.get("styles").then((data) => {
const currentUrl = window.location.hostname;
- const cssFileName = Object.keys(data.styles).find((key) =>
+ const cssFileName = Object.keys(data.styles?.website || {}).find((key) =>
currentUrl.includes(key.replace(".css", ""))
);
- if (
- cssFileName &&
- settings.transparentZenSettings.websiteSettings?.[
- cssFileName.replace(".css", "")
- ] !== false
- ) {
- let style = document.createElement("style");
- style.textContent = data.styles[cssFileName];
- document.head.appendChild(style);
- console.log(`Injected custom CSS for ${currentUrl}`);
+
+ if (cssFileName) {
+ const features = data.styles.website[cssFileName];
+ const featureSettings = settings.transparentZenSettings.featureSettings?.[cssFileName] || {};
+
+ let combinedCSS = "";
+ for (const [feature, css] of Object.entries(features)) {
+ if (featureSettings[feature] !== false) {
+ combinedCSS += css + "\n";
+ }
+ }
+
+ if (combinedCSS) {
+ let style = document.createElement("style");
+ style.textContent = combinedCSS;
+ document.head.appendChild(style);
+ console.log(`Injected custom CSS for ${currentUrl}`);
+ }
}
});
}