···11<script lang="ts">
22- import type { PluginId } from "@/utils/storage";
33- import { globalSettings, plugins } from "@/utils/storage";
22+ import { globalSettings } from "@/utils/storage";
43 import { Settings } from "@lucide/svelte";
54 import Title from "../components/Title.svelte";
65 import Button from "../components/inputs/Button.svelte";
···98 import Slider from "../components/inputs/Slider.svelte";
1091110 let showModal = $state(false);
1212- let selectedPluginId: PluginId | undefined = $state();
1313- let selectedPlugin = $derived.by(() => {
1414- if (selectedPluginId !== undefined) {
1515- return plugins[selectedPluginId];
1616- }
1717- });
1111+ // let selectedPluginId: PluginId | undefined = $state();
1212+ // let selectedPlugin = $derived.by(() => {
1313+ // if (selectedPluginId !== undefined) {
1414+ // return plugins[selectedPluginId];
1515+ // }
1616+ // });
1817</script>
19182019<div id="card">
···5251 </div>
5352</div>
54535454+<!--
5555{#if selectedPlugin}
5656 <Modal bind:showModal>
5757 {#snippet header()}
···8181 {/if}
8282 </Modal>
8383{/if}
8484+-->
+24-25
src/utils/plugin.ts
···5050 }
51515252 async init() {
5353- if (await this.isEnabled()) this.initObserver();
5353+ logger.info(`init plugin: ${this.meta.name}`);
5454+5555+ if (await this.isEnabled()) {
5656+ // wait for elements to be loaded
5757+ if (this.elementsToWaitFor.length > 0) {
5858+ // create an observer to wait for all elements to be loaded
5959+ const observer = new MutationObserver((_mutations, observer) => {
6060+ if (this.allElementsPresent()) {
6161+ observer.disconnect();
6262+ this.inject();
6363+ }
6464+ });
6565+ observer.observe(document.body, { childList: true, subtree: true });
6666+6767+ // check if elements are already present
6868+ if (this.allElementsPresent()) {
6969+ observer.disconnect();
7070+ this.inject();
7171+ }
7272+ } else {
7373+ // no elements to wait for
7474+ this.inject();
7575+ }
7676+ }
54775578 // init watchers
5679 globalSettings.watch((newValue, oldValue) => {
···6992 if (await this.isEnabled()) this.inject();
7093 }
71947272- private initObserver() {
7373- // wait for elements to be loaded
7474- if (this.elementsToWaitFor.length > 0) {
7575- // create an observer to wait for all elements to be loaded
7676- const observer = new MutationObserver((_mutations, observer) => {
7777- if (this.allElementsPresent()) {
7878- observer.disconnect();
7979- this.inject();
8080- }
8181- });
8282- observer.observe(document.body, { childList: true, subtree: true });
8383-8484- // check if elements are already present
8585- if (this.allElementsPresent()) {
8686- observer.disconnect();
8787- this.inject();
8888- }
8989- } else {
9090- // no elements to wait for
9191- this.inject();
9292- }
9393- }
9494-9595 private inject() {
9696 if (this.injected) return;
9797- if (!this.allElementsPresent()) return;
9897 logger.info(`injecting plugin: ${this.meta.name}`);
9998 this.injectCallback(this.settings);
10099 this.injected = true;