Add More Features to pages main component

This commit is contained in:
2026-03-17 18:53:27 +01:00
parent 9e94e20198
commit ee1fb5897e
5 changed files with 52 additions and 153 deletions
@@ -10,9 +10,10 @@ export default async function genWebHTML({
component,
pageProps,
bundledMap,
head,
head: Head,
module,
meta,
routeParams,
}: LivePageDistGenParams) {
const { ClientRootElementIDName, ClientWindowPagePropsName } =
await grabContants();
@@ -22,7 +23,9 @@ export default async function genWebHTML({
);
const componentHTML = renderToString(component);
const headHTML = head ? renderToString(head) : "";
const headHTML = Head
? renderToString(<Head serverRes={pageProps} ctx={routeParams} />)
: "";
let html = `<!DOCTYPE html>\n`;
html += `<html>\n`;
@@ -125,6 +125,7 @@ export default async function grabPageComponent({
: undefined;
const Component = module.default as FC<any>;
const Head = module.head as FC<any>;
const component = RootComponent ? (
<RootComponent {...serverRes}>
@@ -141,6 +142,7 @@ export default async function grabPageComponent({
module,
bundledMap,
meta,
head: Head,
};
} catch (error: any) {
return await grabPageErrorComponent({
@@ -36,11 +36,23 @@ async function generateRes({
module,
meta,
head,
routeParams,
});
if (serverRes?.redirect?.destination) {
return Response.redirect(
serverRes.redirect.destination,
serverRes.redirect.permanent
? 301
: serverRes.redirect.status_code || 302,
);
}
const res_opts: ResponseInit = {
...serverRes?.responseOptions,
headers: {
"Content-Type": "text/html",
...serverRes?.responseOptions?.headers,
},
};
@@ -55,5 +67,9 @@ async function generateRes({
const res = new Response(html, res_opts);
if (routeParams?.resTransform) {
return await routeParams.resTransform(res);
}
return res;
}