Add "newer" map to track replaced reactive elements

This commit is contained in:
Talia 2024-02-29 15:47:20 +01:00
parent 12daec85e6
commit 21e5bdbba4

View file

@ -134,6 +134,9 @@ class ReplacedEvent extends Event {
} }
} }
/** @type {WeakMap<Text|Element,Text|Element>} */
export const newer = new WeakMap()
/** /**
* @param {Observable} observable * @param {Observable} observable
* @return {Element|Text} * @return {Element|Text}
@ -147,6 +150,7 @@ export const reactiveElement = observable => {
const element = ref.deref() const element = ref.deref()
if (element.dispatchEvent(new ReplaceEvent(next))) if (element.dispatchEvent(new ReplaceEvent(next)))
element.replaceWith(next) element.replaceWith(next)
newer.set(this, next)
element.dispatchEvent(new ReplacedEvent(next)) element.dispatchEvent(new ReplacedEvent(next))
}, {once: true}) }, {once: true})
return element return element