mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-02-22 12:08:48 +00:00
Improved - New Translation: `es` (Spanish) by @zeedif (Thank you so much)! - Now all of messages can be selectable and copyable, also on the iPhone, iPad, and Android devices. Now we can copy or share the messages easily. New Feature - Peer-to-Peer Synchronisation has been implemented! Fixed - No longer memory or resource leaks when the plug-in is disabled. - Now deleted chunks are correctly detected on conflict resolution, and we are guided to resurrect them. - Hanging issue during the initial synchronisation has been fixed. - Some unnecessary logs have been removed. - Now all modal dialogues are correctly closed when the plug-in is disabled. Refactor - Several interfaces have been moved to the separated library. - Translations have been moved to each language file, and during the build, they are merged into one file. - Non-mobile friendly code has been removed and replaced with the safer code. - Started writing Platform impedance-matching-layer. - Svelte has been updated to v5. - Some function have got more robust type definitions. - Terser optimisation has slightly improved. - During the build, analysis meta-file of the bundled codes will be generated.
29 lines
882 B
TypeScript
29 lines
882 B
TypeScript
import { ItemView } from "obsidian";
|
|
import { type mount, unmount } from "svelte";
|
|
|
|
export abstract class SvelteItemView extends ItemView {
|
|
abstract instantiateComponent(target: HTMLElement): ReturnType<typeof mount> | Promise<ReturnType<typeof mount>>;
|
|
component?: ReturnType<typeof mount>;
|
|
async onOpen() {
|
|
await super.onOpen();
|
|
this.contentEl.empty();
|
|
await this._dismountComponent();
|
|
this.component = await this.instantiateComponent(this.contentEl);
|
|
return;
|
|
}
|
|
async _dismountComponent() {
|
|
if (this.component) {
|
|
await unmount(this.component);
|
|
this.component = undefined;
|
|
}
|
|
}
|
|
async onClose() {
|
|
await super.onClose();
|
|
if (this.component) {
|
|
await unmount(this.component);
|
|
this.component = undefined;
|
|
}
|
|
return;
|
|
}
|
|
}
|