From 239a39f1e5bb771bb2841c2aee41038b0b577e07 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Tue, 1 Oct 2024 12:29:04 +0800 Subject: feat: show menu items in cases If click on map, only show focus/print-results items If not, show focus-block method and other menu-items --- src/dumbymap.mjs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index 72936ec..d77d49c 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs @@ -474,22 +474,26 @@ export const generateMaps = (container, { delay, mapCallback }) => { const selection = document.getSelection(); if (selection.type === 'Range') { const range = selection.getRangeAt(0); - menu.innerHTML = ''; - const addGeoLink = new menuItem.GeoLink({ range }); - menu.appendChild(addGeoLink.createElement()); + menu.appendChild(menuItem.addGeoLink(dumbymap, range)); } menu.style.cssText = `overflow: visible; display: block; left: ${e.clientX + 10}px; top: ${e.clientY + 5}px;`; - // Print Map Results const map = e.target.closest('.mapclay'); if (map?.renderer?.results) { + // Focus or Print Map Results menu.appendChild(menuItem.renderResults(dumbymap, map)); + menu.appendChild(menuItem.toggleMapFocus(map)); + } else { + // Toggle block focus + const block = e.target.closest('.dumby-block'); + if (block) { + menu.appendChild(menuItem.toggleBlockFocus(block)); + } + // Dumby Utils + menu.appendChild(menuItem.pickMapItem(dumbymap)); + menu.appendChild(menuItem.pickBlockItem(dumbymap)); + menu.appendChild(menuItem.pickLayoutItem(dumbymap)); } - - // Dumby Utils - menu.appendChild(menuItem.pickMapItem(dumbymap)); - menu.appendChild(menuItem.pickBlockItem(dumbymap)); - menu.appendChild(menuItem.pickLayoutItem(dumbymap)); }; // Remove menu when click outside -- cgit v1.2.3-70-g09d2