aboutsummaryrefslogtreecommitdiff
path: root/src/utils/quickCss.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/quickCss.ts')
-rw-r--r--src/utils/quickCss.ts24
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);
});