From 71c20233ff79e696d0eeca2ce1462d3083fbcfed Mon Sep 17 00:00:00 2001 From: polwex Date: Sun, 15 Jun 2025 04:59:49 +0700 Subject: and were done, just like that --- bs5/server/pages/ServerOnlyRSC.re | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 bs5/server/pages/ServerOnlyRSC.re (limited to 'bs5/server/pages/ServerOnlyRSC.re') diff --git a/bs5/server/pages/ServerOnlyRSC.re b/bs5/server/pages/ServerOnlyRSC.re new file mode 100644 index 0000000..8e166aa --- /dev/null +++ b/bs5/server/pages/ServerOnlyRSC.re @@ -0,0 +1,46 @@ +let handler = request => { + let isRSCheader = + Dream.header(request, "Accept") == Some("application/react.component"); + + let app = + +
+ + {React.string( + "The client will fetch the server component from the server and run createFromFetch", + )} +
+ {React.string("asking for the current time (in seconds) since")} +
+ {React.string("00:00:00 GMT, Jan. 1, 1970")} +
+

+ {React.string(string_of_float(Unix.gettimeofday()))} +

+
+
; + + if (isRSCheader) { + Dream.stream(response_stream => { + let%lwt () = + ReactServerDOM.render_model( + ~debug=true, + ~subscribe=data => Dream.write(response_stream, data), + app, + ); + Lwt.return(); + }); + } else { + Dream.html( + ReactDOM.renderToString( + + React.null + , + ), + ); + }; +}; -- cgit v1.2.3