Andrew G. Dunn
2026-03-02 9576701d8532b9697df62c96d7c8676afd985b2d
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
1 files modified
2 ■■■ changed files
quartz/components/scripts/spa.inline.ts 2 ●●● patch | view | raw | blame | history
quartz/components/scripts/spa.inline.ts
@@ -102,7 +102,7 @@
  html.body.appendChild(announcer)
  // morph body
  micromorph(document.body, html.body)
  await micromorph(document.body, html.body)
  // scroll into place and add history
  if (!isBack) {