@react-router/dev 7.8.2 → 7.9.0-pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,7 +24,11 @@ setServerCallback(
24
24
  );
25
25
 
26
26
  createFromReadableStream<RSCPayload>(getRSCStream()).then((payload) => {
27
- startTransition(() => {
27
+ // @ts-expect-error - on 18 types, requires 19.
28
+ startTransition(async () => {
29
+ const formState =
30
+ payload.type === "render" ? await payload.formState : undefined;
31
+
28
32
  hydrateRoot(
29
33
  document,
30
34
  <StrictMode>
@@ -33,6 +37,10 @@ createFromReadableStream<RSCPayload>(getRSCStream()).then((payload) => {
33
37
  createFromReadableStream={createFromReadableStream}
34
38
  />
35
39
  </StrictMode>,
40
+ {
41
+ // @ts-expect-error - no types for this yet
42
+ formState,
43
+ },
36
44
  );
37
45
  });
38
46
  });
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  createTemporaryReferenceSet,
3
3
  decodeAction,
4
+ decodeFormState,
4
5
  decodeReply,
5
6
  loadServerAction,
6
7
  renderToReadableStream,
@@ -8,15 +9,18 @@ import {
8
9
  import { unstable_matchRSCServerRequest as matchRSCServerRequest } from "react-router";
9
10
 
10
11
  import routes from "virtual:react-router/unstable_rsc/routes";
12
+ import basename from "virtual:react-router/unstable_rsc/basename";
11
13
 
12
14
  export async function fetchServer(request: Request) {
13
15
  return await matchRSCServerRequest({
14
16
  createTemporaryReferenceSet,
15
- decodeReply,
16
17
  decodeAction,
18
+ decodeFormState,
19
+ decodeReply,
17
20
  loadServerAction,
18
21
  request,
19
22
  routes,
23
+ basename,
20
24
  generateResponse(match, options) {
21
25
  return new Response(renderToReadableStream(match.payload, options), {
22
26
  status: match.statusCode,
@@ -32,3 +36,7 @@ export default async function handler(request: Request) {
32
36
  >("ssr", "index");
33
37
  return ssr.default(request, fetchServer);
34
38
  }
39
+
40
+ if (import.meta.hot) {
41
+ import.meta.hot.accept();
42
+ }
@@ -12,16 +12,22 @@ export default async function handler(
12
12
  ) {
13
13
  const bootstrapScriptContent =
14
14
  await import.meta.viteRsc.loadBootstrapScriptContent("index");
15
+
15
16
  return routeRSCServerRequest({
16
17
  request,
17
18
  fetchServer,
18
19
  createFromReadableStream,
19
- renderHTML(getPayload) {
20
+ async renderHTML(getPayload) {
21
+ const payload = await getPayload();
22
+ const formState =
23
+ payload.type === "render" ? await payload.formState : undefined;
24
+
20
25
  return ReactDomServer.renderToReadableStream(
21
26
  <RSCStaticRouter getPayload={getPayload} />,
22
27
  {
23
28
  bootstrapScriptContent,
24
29
  signal: request.signal,
30
+ formState,
25
31
  },
26
32
  );
27
33
  },
@@ -16,7 +16,7 @@ export default function handleRequest(
16
16
  routerContext: EntryContext,
17
17
  loadContext: AppLoadContext,
18
18
  // If you have middleware enabled:
19
- // loadContext: unstable_RouterContextProvider
19
+ // loadContext: RouterContextProvider
20
20
  ) {
21
21
  return new Promise((resolve, reject) => {
22
22
  let shellRendered = false;
package/dist/config.d.ts CHANGED
@@ -40,7 +40,7 @@ interface FutureConfig {
40
40
  /**
41
41
  * Enable route middleware
42
42
  */
43
- unstable_middleware: boolean;
43
+ v8_middleware: boolean;
44
44
  unstable_optimizeDeps: boolean;
45
45
  /**
46
46
  * Automatically split route modules into multiple chunks when possible.
package/dist/config.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v7.8.2
2
+ * @react-router/dev v7.9.0-pre.1
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *