allow plugins to specify how soon their start() method is called

This commit is contained in:
V 2023-11-22 06:14:16 +01:00
parent 074ebae334
commit 371b5b0be8
No known key found for this signature in database
GPG key ID: A1DC0CFB5615D905
4 changed files with 38 additions and 24 deletions

View file

@ -12,7 +12,7 @@ import { getTheme, Theme } from "@utils/discord";
import { Margins } from "@utils/margins";
import { classes } from "@utils/misc";
import { LazyComponent } from "@utils/react";
import definePlugin, { OptionType } from "@utils/types";
import definePlugin, { OptionType, StartAt } from "@utils/types";
import { findByCode } from "@webpack";
import { Button, Forms } from "@webpack/common";
@ -87,25 +87,13 @@ export default definePlugin({
description: "Recreation of the old client theme experiment. Add a color to your Discord client theme",
settings,
patches: [
{
find: "Could not find app-mount",
replacement: {
match: /(?<=Could not find app-mount"\))/,
replace: ",$self.addThemeInitializer()"
}
}
],
addThemeInitializer() {
document.addEventListener("DOMContentLoaded", this.themeInitializer = () => {
updateColorVars(settings.store.color);
generateColorOffsets();
});
startAt: StartAt.DOMContentLoaded,
start() {
updateColorVars(settings.store.color);
generateColorOffsets();
},
stop() {
document.removeEventListener("DOMContentLoaded", this.themeInitializer);
document.getElementById("clientThemeVars")?.remove();
document.getElementById("clientThemeOffsets")?.remove();
}