diff options
Diffstat (limited to 'src/utils/quickCss.ts')
-rw-r--r-- | src/utils/quickCss.ts | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/utils/quickCss.ts b/src/utils/quickCss.ts index 0ce50e5..488dcfb 100644 --- a/src/utils/quickCss.ts +++ b/src/utils/quickCss.ts @@ -46,9 +46,23 @@ async function initThemes() { document.documentElement.appendChild(themesStyle); } - const { themeLinks } = Settings; - const links = themeLinks.map(link => `@import url("${link.trim()}");`).join("\n"); - themesStyle.textContent = links; + const { themeLinks, enabledThemes } = Settings; + + const links: string[] = [...themeLinks]; + + if (IS_WEB) { + for (const theme of enabledThemes) { + const themeData = await VencordNative.themes.getThemeData(theme); + if (!themeData) continue; + const blob = new Blob([themeData], { type: "text/css" }); + links.push(URL.createObjectURL(blob)); + } + } else { + const localThemes = enabledThemes.map(theme => `vencord:///themes/${theme}?v=${Date.now()}`); + links.push(...localThemes); + } + + themesStyle.textContent = links.map(link => `@import url("${link.trim()}");`).join("\n"); } document.addEventListener("DOMContentLoaded", () => { @@ -57,4 +71,8 @@ document.addEventListener("DOMContentLoaded", () => { initThemes(); addSettingsListener("themeLinks", initThemes); + addSettingsListener("enabledThemes", initThemes); + + if (!IS_WEB) + VencordNative.quickCss.addThemeChangeListener(initThemes); }); |