From e7d5c6734ba443ebc341b3df7dc3c9a942aaf171 Mon Sep 17 00:00:00 2001 From: giles Date: Sun, 1 Mar 2026 14:41:51 +0000 Subject: [PATCH] Fix renderDOM swallowing pre-rendered DOM nodes as empty dicts renderComponentDOM now eagerly renders kwarg values that are render expressions (HTML tags, <>, ~components) into DOM nodes. But renderDOM treated any non-array object as a dict and returned an empty fragment, silently discarding pre-rendered content. Add a nodeType check to pass DOM nodes through unchanged. Co-Authored-By: Claude Opus 4.6 --- shared/static/scripts/sx.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/shared/static/scripts/sx.js b/shared/static/scripts/sx.js index 43e27c4..d517a25 100644 --- a/shared/static/scripts/sx.js +++ b/shared/static/scripts/sx.js @@ -691,6 +691,9 @@ // Keyword → text if (isKw(expr)) return document.createTextNode(expr.name); + // Pre-rendered DOM node → return as-is + if (expr && expr.nodeType) return expr; + // Dict → empty if (expr && typeof expr === "object" && !Array.isArray(expr)) return document.createDocumentFragment();