diff --git a/src/features/ConfigSync/CmdConfigSync.ts b/src/features/ConfigSync/CmdConfigSync.ts index dae5dfa..6b97de7 100644 --- a/src/features/ConfigSync/CmdConfigSync.ts +++ b/src/features/ConfigSync/CmdConfigSync.ts @@ -8,6 +8,7 @@ import { diff_match_patch, Platform, addIcon, + type App, } from "@/deps.ts"; import type { EntryDoc } from "@lib/common/models/db.definition"; import type { @@ -58,7 +59,7 @@ import { base64ToArrayBuffer, base64ToString } from "octagonal-wheels/binary/bas import { ConflictResolveModal } from "@/modules/features/InteractiveConflictResolving/ConflictResolveModal.ts"; import { Semaphore } from "octagonal-wheels/concurrency/semaphore"; import { EVENT_REQUEST_OPEN_PLUGIN_SYNC_DIALOG, eventHub } from "@/common/events.ts"; -import { PluginDialogModal } from "./PluginDialogModal.ts"; +import type { PluginDialogModal } from "./PluginDialogModal.ts"; import { $msg } from "@/lib/src/common/i18n.ts"; import type { InjectableServiceHub } from "@lib/services/InjectableServices.ts"; import type { LiveSyncCore } from "@/main.ts"; @@ -384,8 +385,14 @@ export type PluginDataEx = { }; export class ConfigSync extends LiveSyncCommands { - constructor(plugin: ObsidianLiveSyncPlugin, core: LiveSyncCore) { + pluginDialogClass: new (app: App, plugin: ObsidianLiveSyncPlugin) => PluginDialogModal; + constructor( + plugin: ObsidianLiveSyncPlugin, + core: LiveSyncCore, + pluginDialogClass: new (app: App, plugin: ObsidianLiveSyncPlugin) => PluginDialogModal + ) { super(plugin, core); + this.pluginDialogClass = pluginDialogClass; pluginScanningCount.onChanged((e) => { const total = e.value; pluginIsEnumerating.set(total != 0); @@ -419,7 +426,7 @@ export class ConfigSync extends LiveSyncCommands { if (this.pluginDialog) { this.pluginDialog.open(); } else { - this.pluginDialog = new PluginDialogModal(this.app, this.plugin); + this.pluginDialog = new this.pluginDialogClass(this.app, this.plugin); this.pluginDialog.open(); } } diff --git a/src/features/ConfigSync/PluginDialogModal.ts b/src/features/ConfigSync/PluginDialogModal.ts index fd79981..bb5bde7 100644 --- a/src/features/ConfigSync/PluginDialogModal.ts +++ b/src/features/ConfigSync/PluginDialogModal.ts @@ -1,6 +1,6 @@ import { mount, unmount } from "svelte"; import { App, Modal } from "@/deps.ts"; -import ObsidianLiveSyncPlugin from "@/main.ts"; +import type ObsidianLiveSyncPlugin from "@/main.ts"; import PluginPane from "./PluginPane.svelte"; export class PluginDialogModal extends Modal { plugin: ObsidianLiveSyncPlugin; diff --git a/src/features/ConfigSync/PluginPane.svelte b/src/features/ConfigSync/PluginPane.svelte index 33d2b34..dbad2b5 100644 --- a/src/features/ConfigSync/PluginPane.svelte +++ b/src/features/ConfigSync/PluginPane.svelte @@ -1,6 +1,6 @@