fix: await micromorph() to prevent race condition with nav event handlers

micromorph() returns Promise<void> because its internal patch() function
is async and uses Promise.all for recursive child patching. Without
await, the DOM morph may still be in progress when the nav event fires
and downstream handlers attempt to rebuild dynamic content.

Fixes #2322
This commit is contained in:
Andrew G. Dunn 2026-03-01 22:27:59 -05:00
parent ec00a40aef
commit dd2f844b2a

View File

@ -102,7 +102,7 @@ async function _navigate(url: URL, isBack: boolean = false) {
html.body.appendChild(announcer) html.body.appendChild(announcer)
// morph body // morph body
micromorph(document.body, html.body) await micromorph(document.body, html.body)
// scroll into place and add history // scroll into place and add history
if (!isBack) { if (!isBack) {