Something went wrong. Try again.
I will pick a better name later.
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031import type { AppLoadContext, EntryContext } from "react-router";import { ServerRouter } from "react-router";import { isbot } from "isbot";import { renderToReadableStream } from "react-dom/server";
export default async function handleRequest( request: Request, responseStatusCode: number, responseHeaders: Headers, routerContext: EntryContext, _loadContext: AppLoadContext,) { let status = responseStatusCode; const userAgent = request.headers.get("user-agent");
const stream = await renderToReadableStream(<ServerRouter context={routerContext} url={request.url} />, { signal: request.signal, onError(error) { status = 500; console.error(error); }, });
if (userAgent && isbot(userAgent)) { await stream.allReady; }
responseHeaders.set("Content-Type", "text/html"); return new Response(stream, { headers: responseHeaders, status });}