mirror of
https://github.com/Vendicated/Vencord.git
synced 2025-02-24 15:35:11 +00:00
Styles: Migrate core CSS injection
This commit is contained in:
parent
494681477f
commit
bf684366e7
5 changed files with 17 additions and 17 deletions
|
@ -187,11 +187,9 @@ async function buildExtension(target, files) {
|
|||
|
||||
const appendCssRuntime = readFile("dist/Vencord.user.css", "utf-8").then(content => {
|
||||
const cssRuntime = `
|
||||
;document.addEventListener("DOMContentLoaded", () => document.documentElement.appendChild(
|
||||
Object.assign(document.createElement("style"), {
|
||||
textContent: \`${content.replaceAll("`", "\\`")}\`,
|
||||
id: "vencord-css-core"
|
||||
})
|
||||
;document.addEventListener("DOMContentLoaded", () => Vencord.Api.Styles.createStyle(
|
||||
"vencord-css-core",
|
||||
\`${content.replaceAll("`", "\\`")}\`
|
||||
), { once: true });
|
||||
`;
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ export { PlainSettings, Settings };
|
|||
import "./utils/quickCss";
|
||||
import "./webpack/patchWebpack";
|
||||
|
||||
import { createStyle } from "@api/Styles";
|
||||
import { openUpdaterModal } from "@components/VencordSettings/UpdaterTab";
|
||||
import { StartAt } from "@utils/types";
|
||||
|
||||
|
@ -142,9 +143,6 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||
startAllPlugins(StartAt.DOMContentLoaded);
|
||||
|
||||
if (IS_DISCORD_DESKTOP && Settings.winNativeTitleBar && navigator.platform.toLowerCase().startsWith("win")) {
|
||||
document.head.append(Object.assign(document.createElement("style"), {
|
||||
id: "vencord-native-titlebar-style",
|
||||
textContent: "[class*=titleBar]{display: none!important}"
|
||||
}));
|
||||
createStyle("vencord-native-titlebar-style", "[class*=titleBar]{display: none!important}");
|
||||
}
|
||||
}, { once: true });
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { createStyle } from "@api/Styles";
|
||||
import { debounce } from "@shared/debounce";
|
||||
import { contextBridge, webFrame } from "electron";
|
||||
import { readFileSync, watch } from "fs";
|
||||
|
@ -30,14 +31,12 @@ if (location.protocol !== "data:") {
|
|||
// #region cssInsert
|
||||
const rendererCss = join(__dirname, IS_VESKTOP ? "vencordDesktopRenderer.css" : "renderer.css");
|
||||
|
||||
const style = document.createElement("style");
|
||||
style.id = "vencord-css-core";
|
||||
style.textContent = readFileSync(rendererCss, "utf-8");
|
||||
const injectStyle = () => createStyle("vencord-css-core", readFileSync(rendererCss, "utf-8"));
|
||||
|
||||
if (document.readyState === "complete") {
|
||||
document.documentElement.appendChild(style);
|
||||
injectStyle();
|
||||
} else {
|
||||
document.addEventListener("DOMContentLoaded", () => document.documentElement.appendChild(style), {
|
||||
document.addEventListener("DOMContentLoaded", injectStyle, {
|
||||
once: true
|
||||
});
|
||||
}
|
||||
|
@ -45,9 +44,7 @@ if (location.protocol !== "data:") {
|
|||
if (IS_DEV) {
|
||||
// persistent means keep process running if watcher is the only thing still running
|
||||
// which we obviously don't want
|
||||
watch(rendererCss, { persistent: false }, () => {
|
||||
document.getElementById("vencord-css-core")!.textContent = readFileSync(rendererCss, "utf-8");
|
||||
});
|
||||
watch(rendererCss, { persistent: false }, injectStyle);
|
||||
}
|
||||
// #endregion
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ export let EmojiStore: t.EmojiStore;
|
|||
export let ThemeStore: t.ThemeStore;
|
||||
export let WindowStore: t.WindowStore;
|
||||
export let DraftStore: t.DraftStore;
|
||||
export let PopoutWindowStore: t.PopoutWindowStore;
|
||||
|
||||
/**
|
||||
* React hook that returns stateful data for one or more stores
|
||||
|
@ -86,3 +87,4 @@ waitForStore("MessageStore", m => MessageStore = m);
|
|||
waitForStore("WindowStore", m => WindowStore = m);
|
||||
waitForStore("EmojiStore", m => EmojiStore = m);
|
||||
waitForStore("ThemeStore", m => ThemeStore = m);
|
||||
waitForStore("PopoutWindowStore", m => PopoutWindowStore = m);
|
||||
|
|
5
src/webpack/common/types/stores.d.ts
vendored
5
src/webpack/common/types/stores.d.ts
vendored
|
@ -228,6 +228,11 @@ export class ThemeStore extends FluxStore {
|
|||
systemTheme: null;
|
||||
}
|
||||
|
||||
export class PopoutWindowStore extends FluxStore {
|
||||
getWindow(windowKey: string): Window;
|
||||
getWindowKeys(): string[];
|
||||
}
|
||||
|
||||
export type useStateFromStores = <T>(
|
||||
stores: t.FluxStore[],
|
||||
mapper: () => T,
|
||||
|
|
Loading…
Add table
Reference in a new issue