aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/dumbymap.mjs
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2024-10-02 17:43:02 +0800
committerHsieh Chin Fan <pham@topo.tw>2024-10-02 19:03:10 +0800
commit661b6c90ac12f8f43bdf935fe39811fee5dcffc7 (patch)
treede9facd7e82d6aafbac393f6b51880b31b552419 /src/dumbymap.mjs
parent045e55ce0547544e064f09f87bd1f75d7fa088b0 (diff)
feat: add checked/unchecked state for block menu item
also, prevent menu got erased by className
Diffstat (limited to 'src/dumbymap.mjs')
-rw-r--r--src/dumbymap.mjs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs
index 7e04501..b909fe0 100644
--- a/src/dumbymap.mjs
+++ b/src/dumbymap.mjs
@@ -461,7 +461,12 @@ export const generateMaps = (container, { delay, mapCallback }) => {
461 const menu = document.createElement('div') 461 const menu = document.createElement('div')
462 menu.className = 'menu' 462 menu.className = 'menu'
463 menu.style.display = 'none' 463 menu.style.display = 'none'
464 menu.onclick = () => (menu.style.display = 'none') 464 menu.onclick = (e) => {
465 const keepMenu = e.target.closest('.keep-menu') || e.target.classList.contains('.keep-menu')
466 if (keepMenu) return
467
468 menu.style.display = 'none'
469 }
465 container.appendChild(menu) 470 container.appendChild(menu)
466 471
467 // Menu Items 472 // Menu Items
@@ -505,6 +510,9 @@ export const generateMaps = (container, { delay, mapCallback }) => {
505 // Remove menu when click outside 510 // Remove menu when click outside
506 const actionOutsideMenu = e => { 511 const actionOutsideMenu = e => {
507 if (menu.style.display === 'none') return 512 if (menu.style.display === 'none') return
513 const keepMenu = e.target.closest('.keep-menu') || e.target.classList.contains('.keep-menu')
514 if (keepMenu) return
515
508 const rect = menu.getBoundingClientRect() 516 const rect = menu.getBoundingClientRect()
509 if ( 517 if (
510 e.clientX < rect.left || 518 e.clientX < rect.left ||