2023-02-14 10:13:40 +01:00
|
|
|
import type { EntryContext } from '@remix-run/node';
|
|
|
|
|
import { Response } from '@remix-run/node';
|
|
|
|
|
import { RemixServer } from '@remix-run/react';
|
|
|
|
|
import { renderToString } from 'react-dom/server';
|
|
|
|
|
import { injectStyles, createStylesServer } from '@mantine/remix';
|
2023-02-11 03:14:14 +01:00
|
|
|
|
2023-02-14 10:13:40 +01:00
|
|
|
const server = createStylesServer();
|
2023-02-11 03:14:14 +01:00
|
|
|
|
|
|
|
|
export default function handleRequest(
|
|
|
|
|
request: Request,
|
|
|
|
|
responseStatusCode: number,
|
|
|
|
|
responseHeaders: Headers,
|
|
|
|
|
remixContext: EntryContext
|
|
|
|
|
) {
|
2023-02-14 10:13:40 +01:00
|
|
|
let markup = renderToString(
|
|
|
|
|
<RemixServer context={remixContext} url={request.url} />
|
|
|
|
|
);
|
|
|
|
|
responseHeaders.set('Content-Type', 'text/html');
|
|
|
|
|
|
|
|
|
|
return new Response(`<!DOCTYPE html>${injectStyles(markup, server)}`, {
|
|
|
|
|
status: responseStatusCode,
|
|
|
|
|
headers: responseHeaders
|
2023-02-11 03:14:14 +01:00
|
|
|
});
|
|
|
|
|
}
|