Skip to content

Commit e674a6a

Browse files
committed
Inject import.meta.viteRsc.loadCss() into route server component
1 parent 1b97af6 commit e674a6a

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

packages/react-router-dev/vite/rsc/virtual-route-modules.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,14 @@ async function createVirtualRouteModuleCode({
9494
if (isClientNonComponentExport(staticExport)) {
9595
code += `export { ${staticExport} } from "${clientModuleId}";\n`;
9696
} else if (staticExport === "ServerComponent") {
97-
code += `export { ServerComponent as default } from "${serverModuleId}";\n`;
97+
code += `import React from "react";\n`;
98+
code += `import { ServerComponent } from "${serverModuleId}";\n`;
99+
code += `export default function ServerComponentWithCss() {`;
100+
code += ` return React.createElement(React.Fragment, null, [`;
101+
code += ` import.meta.viteRsc.loadCss(),`;
102+
code += ` React.createElement(ServerComponent, null),`;
103+
code += ` ]);`;
104+
code += `}`;
98105
} else {
99106
code += `export { ${staticExport} } from "${serverModuleId}";\n`;
100107
}

packages/react-router/lib/rsc/server.ssr.tsx

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,6 @@ export async function routeRSCServerRequest({
112112
throw new Error("Missing body in server response");
113113
}
114114

115-
const detectRedirectResponse = serverResponse.clone();
116-
117115
let serverResponseB: Response | null = null;
118116
if (hydrate) {
119117
serverResponseB = serverResponse.clone();
@@ -128,12 +126,7 @@ export async function routeRSCServerRequest({
128126
};
129127

130128
try {
131-
if (!detectRedirectResponse.body) {
132-
throw new Error("Failed to clone server response");
133-
}
134-
const payload = (await createFromReadableStream(
135-
detectRedirectResponse.body,
136-
)) as RSCPayload;
129+
const payload = await getPayload();
137130
if (
138131
serverResponse.status === SINGLE_FETCH_REDIRECT_STATUS &&
139132
payload.type === "redirect"

0 commit comments

Comments
 (0)