Load freeze.sx + browser API stubs for complete island SSR
All islands now render server-side: - freeze.sx loaded into kernel (freeze-scope for home/stepper) - Browser-only APIs stubbed (local-storage-get/set, dom-listen, dom-dispatch, dom-set-data, dom-get-data, promise-then) → return nil on server, client hydrates with real behavior Zero island failures. Both layouts/header and home/stepper render with hydration markers, CSS classes, and initial signal values. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -394,6 +394,16 @@ let make_server_env () =
|
||||
bind "set-render-active!" (fun _args -> Nil);
|
||||
bind "render-active?" (fun _args -> Bool true);
|
||||
|
||||
(* Browser APIs — no-op stubs for SSR *)
|
||||
bind "local-storage-get" (fun _args -> Nil);
|
||||
bind "local-storage-set" (fun _args -> Nil);
|
||||
bind "dom-listen" (fun _args -> NativeFn ("noop", fun _ -> Nil));
|
||||
bind "dom-dispatch" (fun _args -> Nil);
|
||||
bind "dom-set-data" (fun _args -> Nil);
|
||||
bind "dom-get-data" (fun _args -> Nil);
|
||||
bind "event-detail" (fun _args -> Nil);
|
||||
bind "promise-then" (fun _args -> Nil);
|
||||
|
||||
(* Raw HTML — platform primitives for adapter-html.sx *)
|
||||
bind "make-raw-html" (fun args ->
|
||||
match args with [String s] -> RawHTML s | [v] -> RawHTML (value_to_string v) | _ -> Nil);
|
||||
|
||||
Reference in New Issue
Block a user