diff options
-rw-r--r-- | src/dumbymap.mjs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index a38b37c..383eedf 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs | |||
@@ -289,14 +289,14 @@ export const generateMaps = (container, { delay } = {}) => { | |||
289 | mapElement.renderer = renderer | 289 | mapElement.renderer = renderer |
290 | mapElement.setAttribute('tabindex', '-1') | 290 | mapElement.setAttribute('tabindex', '-1') |
291 | if (mapElement.getAttribute('data-render') === 'fulfilled') { | 291 | if (mapElement.getAttribute('data-render') === 'fulfilled') { |
292 | mapCache[mapElement.id] = renderer | 292 | mapCache[mapElement.id] ??= renderer |
293 | } else { | 293 | } else { |
294 | return | 294 | return |
295 | } | 295 | } |
296 | 296 | ||
297 | // Work with Mutation Observer | 297 | // Work with Mutation Observer |
298 | const observer = mapFocusObserver() | 298 | const observer = mapFocusObserver() |
299 | mapFocusObserver().observe(mapElement, { | 299 | observer.observe(mapElement, { |
300 | attributes: true, | 300 | attributes: true, |
301 | attributeFilter: ['class'], | 301 | attributeFilter: ['class'], |
302 | attributeOldValue: true | 302 | attributeOldValue: true |
@@ -386,11 +386,11 @@ export const generateMaps = (container, { delay } = {}) => { | |||
386 | // If map in cache has the same ID, just put it into target | 386 | // If map in cache has the same ID, just put it into target |
387 | // So user won't feel anything changes when editing markdown | 387 | // So user won't feel anything changes when editing markdown |
388 | configList.forEach(config => { | 388 | configList.forEach(config => { |
389 | const cache = mapCache[config.id] | 389 | const cachedRenderer = mapCache[config.id] |
390 | if (!cache) return | 390 | if (!cachedRenderer) return |
391 | 391 | ||
392 | target.appendChild(cache.target) | 392 | target.appendChild(cachedRenderer.target) |
393 | config.target = cache.target | 393 | config.target = cachedRenderer.target |
394 | }) | 394 | }) |
395 | 395 | ||
396 | // trivial: if map cache is applied, do not show yaml text | 396 | // trivial: if map cache is applied, do not show yaml text |
@@ -411,6 +411,9 @@ export const generateMaps = (container, { delay } = {}) => { | |||
411 | Array.from(target.children).forEach(e => { | 411 | Array.from(target.children).forEach(e => { |
412 | e.style.order = order | 412 | e.style.order = order |
413 | order++ | 413 | order++ |
414 | if (e.dataset.render === 'fulfilled') { | ||
415 | afterMapRendered(e.renderer) | ||
416 | } | ||
414 | }) | 417 | }) |
415 | }, | 418 | }, |
416 | delay ?? 1000 | 419 | delay ?? 1000 |