From 9d4032abf1ab33849a7cbc83d51411d73dc8a727 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Mon, 30 Sep 2024 12:09:32 +0800 Subject: feat: improve actions in sub-menu * scroll to focus map/block * refactor methods in dumbyUtils * refactor MutationObserver for map --- src/MenuItem.mjs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/MenuItem.mjs') diff --git a/src/MenuItem.mjs b/src/MenuItem.mjs index ac082b2..9830bf4 100644 --- a/src/MenuItem.mjs +++ b/src/MenuItem.mjs @@ -1,4 +1,5 @@ import { createGeoLink } from './dumbymap'; +import { scrollToBlock } from './dumbyUtils'; class Item { constructor({ text, innerHTML, onclick }) { @@ -55,7 +56,10 @@ export const pickMapItem = dumbymap => map => new Item({ text: map.id, - onclick: () => map.classList.add('focus'), + onclick: () => { + map.classList.add('focus'); + map.scrollIntoView({ behavior: 'smooth' }); + }, }).element, ), }).element; @@ -66,8 +70,15 @@ export const pickBlockItem = dumbymap => items: dumbymap.blocks.map( (block, index) => new Item({ - text: `Block ${index}`, - onclick: () => block.classList.add('focus'), + text: + block + .querySelector('p') + ?.textContent.substring(0, 20) + .concat(' ...') ?? `Block ${index}`, + onclick: () => { + block.classList.add('focus'); + scrollToBlock(block); + }, }).element, ), }).element; -- cgit v1.2.3-70-g09d2