Fix sx.js component kwarg evaluation: distinguish expressions from data
Three issues with the eager kwarg evaluation in renderComponentDOM and renderStrComponent: 1. Data arrays (e.g. tags list of dicts) were being passed to sxEval which tried to call a dict as a function — causing blank pages. Fix: only evaluate arrays with a Symbol head (actual expressions); pass data arrays through as-is. 2. Expression arrays like (get t "src") inside map lambdas lost their scope when deferred — causing "get,t,src" URLs. Fix: eagerly evaluate these Symbol-headed expressions in the caller's env. 3. Bare symbol `t` used as boolean in editor.sx threw "Undefined symbol". Fix: use `true` literal instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -38,7 +38,7 @@
|
||||
(div :class "flex items-center gap-[16px] mt-[32px] pt-[16px] border-t border-stone-200"
|
||||
(select :name "status"
|
||||
:class "text-[14px] rounded-[4px] border border-stone-200 px-[8px] py-[6px] bg-white text-stone-600"
|
||||
(option :value "draft" :selected t "Draft")
|
||||
(option :value "draft" :selected true "Draft")
|
||||
(option :value "published" "Published"))
|
||||
(button :type "submit"
|
||||
:class "px-[20px] py-[6px] bg-stone-700 text-white text-[14px] rounded-[8px] hover:bg-stone-800 transition-colors cursor-pointer" create-label))))
|
||||
|
||||
Reference in New Issue
Block a user