diff --git a/src/components/MainComponent.svelte b/src/components/MainComponent.svelte index 103ba8d..b411747 100644 --- a/src/components/MainComponent.svelte +++ b/src/components/MainComponent.svelte @@ -6,7 +6,13 @@ const children: Record = {}; + let pendingOpenNote: Note | null = null; + export function focusTo(vault: DendronVault, note: Note) { + if (pendingOpenNote === note) { + pendingOpenNote = null; + return; + } const vaultComponent = children[vault.config.name]; if (!vaultComponent) return; @@ -14,10 +20,20 @@ pathNotes.shift(); vaultComponent.focusNotes(pathNotes); } + + function onOpenNote(e: CustomEvent) { + pendingOpenNote = e.detail; + }
{#each $dendronVaultList as vault (vault.config.name)} - + {/each}
diff --git a/src/components/NoteComponent.svelte b/src/components/NoteComponent.svelte index 6a32ffd..b2a06bf 100644 --- a/src/components/NoteComponent.svelte +++ b/src/components/NoteComponent.svelte @@ -7,7 +7,7 @@ import { openFile } from "../utils"; import { LookupModal } from "../modal/lookup"; import { DendronVault } from "src/engine/vault"; - import { tick } from "svelte"; + import { createEventDispatcher, tick } from "svelte"; export let note: Note; export let isRoot: boolean = false; @@ -89,6 +89,12 @@ block: "center", }); }; + + interface $$Events { + openNote: CustomEvent; + } + + const dispatcher = createEventDispatcher();
@@ -96,6 +102,7 @@ class="tree-item-self is-clickable mod-collapsible is-active" class:is-active={isActive} on:click={() => { + dispatcher("openNote", note); openFile(getPlugin().app, note.file); isCollapsed = false; }} @@ -130,7 +137,7 @@ }} > {#each note.children as child (child.name)} - + {/each}
{/if}