fix: use Svelte dispatch for verstak-link events in MarkdownPreview

Problem: MarkdownPreview dispatched DOM CustomEvent via link.dispatchEvent()
which doesn't propagate through Svelte's event system. The on:verstak-link
handler on <MarkdownPreview> in NoteEditorPanel only catches Svelte dispatch()
events, not DOM CustomEvents from {@html} content.

Fix: Replaced DOM CustomEvent dispatch with Svelte createEventDispatcher.
Now handleClick() in MarkdownPreview calls dispatch('verstak-link', {...})
which properly propagates through NoteEditorPanel → App.svelte chain.

Also: removed unused importInternalLink import (was unused after
InternalLinkPicker replaced the manual modal).
This commit is contained in:
2026-06-15 12:36:32 +08:00
parent db961ff0c3
commit 2cbb2986c1
3 changed files with 19 additions and 19 deletions
@@ -1,9 +1,12 @@
<script>
import { createEventDispatcher } from 'svelte';
import { renderMarkdown, isInternalLink, parseVerstakUrl, isAllowedVerstakType } from '../../markdown/markdown';
import { t } from '../../i18n';
export let content = '';
const dispatch = createEventDispatcher();
let html = '';
let error = '';
@@ -30,10 +33,7 @@
const parsed = parseVerstakUrl(href);
if (!parsed || !isAllowedVerstakType(parsed.type)) return;
link.dispatchEvent(new CustomEvent('verstak-link', {
bubbles: true,
detail: { type: parsed.type, id: parsed.id, href },
}));
dispatch('verstak-link', { type: parsed.type, id: parsed.id, href });
}
</script>