From 2f4f688cbf8fb596405cbd7d2c89765d0d54106d Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Fri, 11 Oct 2024 20:40:04 +0800 Subject: feat: add query param for layout --- src/dumbymap.mjs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/dumbymap.mjs') diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index f4e3d83..e5dd2cd 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs @@ -348,16 +348,20 @@ export const generateMaps = (container, { const mapElement = renderer.target // FIXME mapElement.renderer = renderer + // Make map not focusable by tab key mapElement.tabindex = -1 + + // Cache if render is fulfilled if (mapElement.dataset.render === 'fulfilled') { mapCache[mapElement.id] = renderer } else { return } + // Simple callback by caller renderCallback?.(renderer) - // Work with Mutation Observer + // Watch change of class const observer = mapClassObserver() observer.observe(mapElement, { attributes: true, @@ -367,6 +371,14 @@ export const generateMaps = (container, { onRemove(dumbymap.htmlHolder, () => { observer.disconnect() }) + + // Focus current map is no map is focused + if ( + !dumbymap.utils.renderedMaps().find(map => map.classList.contains('focus')) || + container.querySelectorAll('.mapclay.focus').length === 0 + ) { + mapElement.classList.add('focus') + } } // Set unique ID for map container -- cgit v1.2.3-70-g09d2