diff --git a/frontend/src/Components/MarkdownEditor.svelte b/frontend/src/Components/MarkdownEditor.svelte index e610d043..1a074ea6 100644 --- a/frontend/src/Components/MarkdownEditor.svelte +++ b/frontend/src/Components/MarkdownEditor.svelte @@ -38,16 +38,31 @@ } else applyEdit(); } - function resetEdit(){ - editing = false; - editValue = {source:value.source,rendered:value.rendered}; + function oncontextmenu(evt){ + if (evt.target) { + evt.preventDefault(); + evt.stopPropagation(); + } + sheet = evt.sheet ? evt : null; // store position of activated cell to focus after editing starts + startEdit(); + return false; } - function startEdit(){ - activeField.update((n) => n+1); - editing = editable; + function oninput(ev){ + if (simple) { + value.source = editValue.source; + value.rendered = editValue.rendered; + } + if (timer) clearTimeout(timer); + timer = setTimeout(render,500); } + function onkeyup(ev){ + if (ev.keyCode == 13 && ev.ctrlKey) doSave(); + if (ev.keyCode == 27) resetEdit(); + } + + async function render(){ const url = api('markdown/render'); const resp = await fetch(url,{ @@ -59,59 +74,9 @@ if (store_id) localStorage.setItem(store_id,editValue.source); } - function typed(ev){ - if (simple) { - value.source = editValue.source; - value.rendered = editValue.rendered; - } - if (ev.keyCode == 13 && ev.ctrlKey) doSave(); - if (ev.keyCode == 27) resetEdit(); - - if (timer) clearTimeout(timer); - timer = setTimeout(render,500); - } - - function measured(evt,duration){ - if (duration < 500){ - onclick(evt); - } else { - startEdit(); - } - } - - - function oncontextmenu(evt){ - if (evt.target) { - evt.preventDefault(); - evt.stopPropagation(); - } - sheet = evt.sheet ? evt : null; // store position of activated cell to focus after editing starts - startEdit(); - return false; - } - - function onmousedown(evt){ - evt.preventDefault(); - start = evt.timeStamp; - } - - function onmouseup(evt){ - evt.preventDefault(); - measured(evt, evt.timeStamp - start); - } - - function onresize(evt){ - console.log('onresize()',evt); - } - - function ontouchstart(evt){ - evt.preventDefault(); - start = evt.timeStamp; - } - - function ontouchend(evt){ - evt.preventDefault(); - measured(evt, evt.timeStamp - start); + function resetEdit(){ + editing = false; + editValue = {source:value.source,rendered:value.rendered}; } function restore(ev){ @@ -120,6 +85,11 @@ render(); } + function startEdit(){ + activeField.update((n) => n+1); + editing = editable; + } + activeField.subscribe((val) => resetEdit()); if (simple) startEdit(); @@ -145,7 +115,7 @@ {#if stored_source} {t('unsaved_content')} {/if} - + {#if !simple}