diff options
Diffstat (limited to 'src/dumbymap.mjs')
-rw-r--r-- | src/dumbymap.mjs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index b01c73e..35a4614 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs | |||
@@ -173,7 +173,7 @@ export const generateMaps = (container, { layouts = [], delay, renderCallback } | |||
173 | * mapFocusObserver. observe for map focus | 173 | * mapFocusObserver. observe for map focus |
174 | * @return {MutationObserver} observer | 174 | * @return {MutationObserver} observer |
175 | */ | 175 | */ |
176 | const mapFocusObserver = () => | 176 | const mapClassObserver = () => |
177 | new window.MutationObserver(mutations => { | 177 | new window.MutationObserver(mutations => { |
178 | const mutation = mutations.at(-1) | 178 | const mutation = mutations.at(-1) |
179 | const target = mutation.target | 179 | const target = mutation.target |
@@ -191,6 +191,13 @@ export const generateMaps = (container, { layouts = [], delay, renderCallback } | |||
191 | .renderedMaps() | 191 | .renderedMaps() |
192 | .filter(map => map.id !== target.id) | 192 | .filter(map => map.id !== target.id) |
193 | .forEach(map => map.classList.remove('focus')) | 193 | .forEach(map => map.classList.remove('focus')) |
194 | |||
195 | if (target.classList.contains('focus-manual')) { | ||
196 | setTimeout( | ||
197 | () => target.classList.remove('focus-manual'), | ||
198 | 2000, | ||
199 | ) | ||
200 | } | ||
194 | } | 201 | } |
195 | 202 | ||
196 | if (shouldBeInShowcase) { | 203 | if (shouldBeInShowcase) { |
@@ -304,7 +311,7 @@ export const generateMaps = (container, { layouts = [], delay, renderCallback } | |||
304 | renderCallback?.(renderer) | 311 | renderCallback?.(renderer) |
305 | 312 | ||
306 | // Work with Mutation Observer | 313 | // Work with Mutation Observer |
307 | const observer = mapFocusObserver() | 314 | const observer = mapClassObserver() |
308 | observer.observe(mapElement, { | 315 | observer.observe(mapElement, { |
309 | attributes: true, | 316 | attributes: true, |
310 | attributeFilter: ['class'], | 317 | attributeFilter: ['class'], |
@@ -511,4 +518,4 @@ export const generateMaps = (container, { layouts = [], delay, renderCallback } | |||
511 | ) | 518 | ) |
512 | 519 | ||
513 | return Object.seal(dumbymap) | 520 | return Object.seal(dumbymap) |
514 | } \ No newline at end of file | 521 | } |