fix: await micromorph() to prevent race condition with nav event handlers (#2323)
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:
parent
ec00a40aef
commit
9576701d85
1 changed files with 1 additions and 1 deletions
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue