From 5f26194f7a285a2743a84056deb3b494bde9f7f5 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Mon, 30 Sep 2024 23:00:20 +0800 Subject: feat: improve menu items * fix editing mode, make it just like layout changes * add plain-modal for renderer results * check selection is within text range for geolink --- src/editor.mjs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/editor.mjs') diff --git a/src/editor.mjs b/src/editor.mjs index 760e2e1..a7bdd77 100644 --- a/src/editor.mjs +++ b/src/editor.mjs @@ -11,7 +11,10 @@ const textArea = document.querySelector('.editor textarea'); let dumbymap; new MutationObserver(() => { - if (document.body.getAttribute('data-mode') === 'editing') { + if ( + document.body.getAttribute('data-mode') === 'editing' && + HtmlContainer.getAttribute('data-layout') !== 'normal' + ) { HtmlContainer.setAttribute('data-layout', 'normal'); } }).observe(document.body, { @@ -276,7 +279,7 @@ window.onhashchange = () => { // Completion in Code Blok {{{ // Elements about suggestions {{{ const menu = document.createElement('div'); -menu.id = 'menu'; +menu.className = 'menu'; menu.onclick = () => (menu.style.display = 'none'); new MutationObserver(() => { if (menu.style.display === 'none') { @@ -648,14 +651,13 @@ document.onkeydown = e => { // }}} // }}} // Layout Switch {{{ -const layoutObserver = new MutationObserver(() => { +new MutationObserver(mutaions => { + const mutation = mutaions.at(-1); const layout = HtmlContainer.getAttribute('data-layout'); - if (layout !== 'normal') { - document.body.removeAttribute('data-mode'); + if (layout !== 'normal' || mutation.oldValue === 'normal') { + document.body.setAttribute('data-mode', ''); } -}); - -layoutObserver.observe(HtmlContainer, { +}).observe(HtmlContainer, { attributes: true, attributeFilter: ['data-layout'], attributeOldValue: true, -- cgit v1.2.3-70-g09d2