diff --git a/src/components/AvatarView.svelte b/src/components/AvatarView.svelte index 9a598c2..2588028 100644 --- a/src/components/AvatarView.svelte +++ b/src/components/AvatarView.svelte @@ -25,6 +25,9 @@ let initialDescription = state?.description; let hoverOnImage: boolean = false; + let editMode: boolean = false; + let descriptionEditEl: HTMLElement; + let descriptionPreviewEl: HTMLElement; $: inSourceMode = app ? isSourceMode(app) : false; $: fallbackImage = `https://ui-avatars.com/api/?name=${ctx?.sourcePath.split("/").at(-1) ?? "::"}&size=240`; @@ -34,11 +37,22 @@ return view?.getMode() === "source"; } - function updateDescription() { + function enterEditMode() { + if(inSourceMode && !editMode) { + editMode = true; + queueMicrotask(() => { + descriptionEditEl.focus(); + }); + } + } + + function updateDescription(evt: MouseEvent) { + editMode = false; initialDescription = state.description; setState((fm) => { fm.description = state.description; }); + evt.stopPropagation(); } function updateImage() { @@ -59,9 +73,8 @@ return src; } - let mdEL: HTMLElement; - $: if(mdEL && plugin && state?.description) { - MarkdownRenderer.renderMarkdown(state.description, mdEL, "", plugin); + $: if(descriptionPreviewEl && plugin && state && state?.description) { + MarkdownRenderer.renderMarkdown(state.description, descriptionPreviewEl, "", plugin); } @@ -79,13 +92,20 @@ {/if} -