open Rsc; module Section = { [@react.component] let make = (~title, ~children, ~description=?) => {

{React.string(title)}

{switch (description) { | Some(description) => description | None => React.null }}
children ; }; }; module ExpandedContent = { [@react.component] let make = (~id, ~content: string, ~updatedAt: float, ~title: string) => { let lastUpdatedAt = if (Date.is_today(updatedAt)) { Date.format_time(updatedAt); } else { Date.format_date(updatedAt); }; let summary = content |> Markdown.extract_text |> Markdown.summarize(~words=20); {switch (String.trim(summary)) { | "" => {React.string("(No content)")} | s => s }}
}>
title lastUpdatedAt
; }; }; module Page = { [@react.async.component] let make = () => { let promiseIn2 = Lwt.bind(Lwt_unix.sleep(2.0), _ => Lwt.return("Solusionao in 2 seconds!") ); let promiseIn4 = Lwt.bind(Lwt_unix.sleep(4.0), _ => Lwt.return("Solusionao in 4 seconds!") ); Lwt.return(

{React.string( "Server side rendering server components and client components", )}

"React server components. Lazy loading of client components. Client props encodings, such as promises, React elements, and primitive types."


{React.string("H E A D E R")} )} string_list=["Item 1", "Item 2"] promise=promiseIn2>
{React.string( "This footer is a React.element as a server component into client prop, yay!", )}

{React.string("H E A D E R")} )} string_list=["Item 1", "Item 2"] promise=promiseIn2>
{React.string( "This footer is a React.element as a server component into client prop, yay!", )}



{React.string("Server functions")}









, ); }; }; module App = { [@react.component] let make = () => {
; }; }; let handler = request => DreamRSC.create_from_request( ~bootstrap_modules=["/static/demo/SinglePageRSC.re.js"], , request, );