diff options
Diffstat (limited to 'inject-css.js')
-rw-r--r-- | inject-css.js | 30 |
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}`); + } } }); } |