Skip to content

Commit fd0c9a0

Browse files
committed
update playgrounds
1 parent 11661ea commit fd0c9a0

File tree

6 files changed

+46
-15
lines changed

6 files changed

+46
-15
lines changed

playground/rsc-parcel/src/entry.browser.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,16 @@ setServerCallback(
2121
createFromReadableStream,
2222
createTemporaryReferenceSet,
2323
encodeReply,
24-
})
24+
}),
2525
);
2626

2727
createFromReadableStream(getRSCStream(), { assets: "manifest" }).then(
2828
(payload: RSCPayload) => {
29-
React.startTransition(() => {
29+
// @ts-expect-error - on 18 types, requires 19.
30+
startTransition(async () => {
31+
const formState =
32+
payload.type === "render" ? await payload.formState : undefined;
33+
3034
hydrateRoot(
3135
document,
3236
<React.StrictMode>
@@ -35,8 +39,12 @@ createFromReadableStream(getRSCStream(), { assets: "manifest" }).then(
3539
routeDiscovery="eager"
3640
createFromReadableStream={createFromReadableStream}
3741
/>
38-
</React.StrictMode>
42+
</React.StrictMode>,
43+
{
44+
// @ts-expect-error - no types for this yet
45+
formState,
46+
},
3947
);
4048
});
41-
}
49+
},
4250
);

playground/rsc-parcel/src/entry.rsc.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import {
44
createTemporaryReferenceSet,
55
decodeAction,
6+
decodeFormState,
67
decodeReply,
78
loadServerAction,
89
renderToReadableStream,
@@ -17,8 +18,9 @@ import "./entry.browser.tsx";
1718
export function fetchServer(request: Request) {
1819
return matchRSCServerRequest({
1920
createTemporaryReferenceSet,
20-
decodeReply,
2121
decodeAction,
22+
decodeFormState,
23+
decodeReply,
2224
loadServerAction,
2325
request,
2426
routes,

playground/rsc-parcel/src/entry.ssr.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,22 @@ app.use(
2222
fetchServer,
2323
createFromReadableStream,
2424
async renderHTML(getPayload) {
25+
const payload = await getPayload();
26+
const formState =
27+
payload.type === "render" ? await payload.formState : undefined;
28+
2529
return await renderHTMLToReadableStream(
2630
<RSCStaticRouter getPayload={getPayload} />,
2731
{
2832
bootstrapScriptContent: (
2933
fetchServer as unknown as { bootstrapScript: string }
3034
).bootstrapScript,
31-
}
35+
formState,
36+
},
3237
);
3338
},
3439
});
35-
})
40+
}),
3641
);
3742

3843
const server = app.listen(3000);

playground/rsc-vite/src/entry.browser.tsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,27 @@ setServerCallback(
1818
createFromReadableStream,
1919
createTemporaryReferenceSet,
2020
encodeReply,
21-
})
21+
}),
2222
);
2323

2424
createFromReadableStream<RSCPayload>(getRSCStream()).then((payload) => {
25-
startTransition(() => {
25+
// @ts-expect-error - on 18 types, requires 19.
26+
startTransition(async () => {
27+
const formState =
28+
payload.type === "render" ? await payload.formState : undefined;
29+
2630
hydrateRoot(
2731
document,
2832
<StrictMode>
2933
<RSCHydratedRouter
3034
payload={payload}
3135
createFromReadableStream={createFromReadableStream}
3236
/>
33-
</StrictMode>
37+
</StrictMode>,
38+
{
39+
// @ts-expect-error - no types for this yet
40+
formState,
41+
},
3442
);
3543
});
3644
});

playground/rsc-vite/src/entry.rsc.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {
22
createTemporaryReferenceSet,
33
decodeAction,
4+
decodeFormState,
45
decodeReply,
56
loadServerAction,
67
renderToReadableStream,
@@ -12,8 +13,9 @@ import { routes } from "./routes";
1213
export async function fetchServer(request: Request) {
1314
return await matchRSCServerRequest({
1415
createTemporaryReferenceSet,
15-
decodeReply,
1616
decodeAction,
17+
decodeFormState,
18+
decodeReply,
1719
loadServerAction,
1820
request,
1921
// @ts-expect-error

playground/rsc-vite/src/entry.ssr.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,26 @@ import {
88

99
export default async function handler(
1010
request: Request,
11-
fetchServer: (request: Request) => Promise<Response>
11+
fetchServer: (request: Request) => Promise<Response>,
1212
) {
13-
const bootstrapScriptContent = await import.meta.viteRsc.loadBootstrapScriptContent("index");
13+
const bootstrapScriptContent =
14+
await import.meta.viteRsc.loadBootstrapScriptContent("index");
1415
return routeRSCServerRequest({
1516
request,
1617
fetchServer,
1718
createFromReadableStream,
18-
renderHTML(getPayload) {
19+
async renderHTML(getPayload) {
20+
const payload = await getPayload();
21+
const formState =
22+
payload.type === "render" ? await payload.formState : undefined;
23+
1924
return ReactDomServer.renderToReadableStream(
2025
<RSCStaticRouter getPayload={getPayload} />,
2126
{
2227
bootstrapScriptContent,
2328
signal: request.signal,
24-
}
29+
formState,
30+
},
2531
);
2632
},
2733
});

0 commit comments

Comments
 (0)