web: wrap page using render

This commit is contained in:
Dmitriy Pleshevskiy 2022-05-24 11:26:13 +03:00
parent 708b13cf17
commit 047856ddf3
2 changed files with 7 additions and 7 deletions

View File

@ -1,6 +1,6 @@
import { AnyNode, E, Elem } from "ren/node.ts";
import { AnyNode, E } from "ren/node.ts";
export function Layout(page: AnyNode): Elem {
export function Layout(page: AnyNode): AnyNode {
return E("html", { lang: "ru" }, [
E("head", [], [
E("meta", { charset: "utf-8" }),

View File

@ -39,17 +39,17 @@ async function serveHttp(conn: Deno.Conn) {
function handleRequest(req: Request): Response {
log.debug({ url: req.url });
const ren = new StrRenderer();
const ren = new StrRenderer({ wrapNode: Layout });
const ctx = createContextFromRequest(req);
if (ctx.locPath === "/") {
return createHtmlResponse(ren.render(Layout(HomePage(ctx))));
return createHtmlResponse(ren.render(HomePage(ctx)));
} else if (ctx.locPath === "/recipes") {
return createHtmlResponse(ren.render(Layout(RecipesPage(ctx))));
return createHtmlResponse(ren.render(RecipesPage(ctx)));
} else if (ctx.locPath === "/ingredients") {
return createHtmlResponse(ren.render(Layout(IngredientsPage(ctx))));
return createHtmlResponse(ren.render(IngredientsPage(ctx)));
} else {
return createHtmlResponse(ren.render(Layout(E404Page(ctx))), 404);
return createHtmlResponse(ren.render(E404Page(ctx)), 404);
}
}