SPA navigation, page component refactors, WASM rebuild
Refactor page components (docs, examples, specs, reference, layouts) and adapters (adapter-sx, boot-helpers, orchestration) across sx/ and web/ directories. Add Playwright SPA navigation tests. Rebuild WASM kernel with updated bytecode. Add OCaml primitives for request handling. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -508,18 +508,17 @@
|
||||
boost-el
|
||||
(let
|
||||
((attr (dom-get-attr boost-el "sx-boost")))
|
||||
(if (and attr (not (= attr "true"))) attr "#main-panel"))
|
||||
"#main-panel")))
|
||||
(if (and attr (not (= attr "true"))) attr "#sx-content"))
|
||||
"#sx-content")))
|
||||
(if
|
||||
(try-client-route (url-pathname href) target-sel)
|
||||
(do (browser-push-state nil "" href) (browser-scroll-to 0 0))
|
||||
(do
|
||||
(when
|
||||
(not (dom-has-attr? link "sx-get"))
|
||||
(dom-set-attr link "sx-get" href))
|
||||
(when
|
||||
(not (dom-has-attr? link "sx-push-url"))
|
||||
(dom-set-attr link "sx-push-url" "true"))
|
||||
(log-info (str "sx:route server fetch " href))
|
||||
(dom-set-attr link "sx-get" href)
|
||||
(dom-set-attr link "sx-target" target-sel)
|
||||
(dom-set-attr link "sx-select" target-sel)
|
||||
(dom-set-attr link "sx-push-url" "true")
|
||||
(execute-request link nil nil)))))))))
|
||||
|
||||
(define sw-post-message (fn (msg) nil))
|
||||
@@ -604,7 +603,7 @@
|
||||
(fn
|
||||
(expr)
|
||||
(let
|
||||
((result (render-to-dom expr (get-render-env nil) nil)))
|
||||
((result (try-catch (fn () (render-to-dom expr (get-render-env nil) nil)) (fn (err) (log-error (str "sx-render: " err)) (let ((el (dom-create-element "div" nil))) (dom-set-attr el "class" "sx-render-error") (dom-set-attr el "style" "color:red;font-size:0.875rem;padding:0.5rem;border:1px solid red;border-radius:4px;margin:0.25rem 0;") (dom-set-text-content el (str "Render error: " err)) el)))))
|
||||
(when result (dom-append frag result))))
|
||||
exprs)
|
||||
(scope-pop! "sx-render-markers")
|
||||
@@ -630,7 +629,15 @@
|
||||
(and text (> (len text) 0))
|
||||
(let
|
||||
((exprs (sx-parse text)))
|
||||
(for-each (fn (expr) (cek-eval expr)) exprs))))))
|
||||
(for-each
|
||||
(fn
|
||||
(expr)
|
||||
(try-catch
|
||||
(fn () (cek-eval expr))
|
||||
(fn
|
||||
(err)
|
||||
(log-error (str "sx-process-scripts: " err)))))
|
||||
exprs))))))
|
||||
scripts))))
|
||||
|
||||
(define
|
||||
@@ -641,7 +648,10 @@
|
||||
selector
|
||||
(let
|
||||
((selected (dom-query container selector)))
|
||||
(if selected selected (children-to-fragment container)))
|
||||
(if
|
||||
selected
|
||||
(children-to-fragment selected)
|
||||
(children-to-fragment container)))
|
||||
(children-to-fragment container))))
|
||||
|
||||
(define
|
||||
|
||||
Reference in New Issue
Block a user