Set theme in middleware

This commit is contained in:
regalijan 2023-10-19 16:49:48 -04:00
parent 2920b164e1
commit 07e810156f
Signed by: regalijan
GPG Key ID: 5D4196DA269EF520

View File

@ -106,4 +106,32 @@ async function setHeaders(context: RequestContext) {
return response;
}
export const onRequest = [setAuth, constructHTML, setBody, setHeaders];
async function setTheme(context: RequestContext) {
const cookies = context.request.headers.get("cookie");
if (!cookies) {
context.data.theme = "dark";
return await context.next();
}
const cookieList = cookies.split("; ");
const value = cookieList.find((c) => {
if (!c.startsWith("chakra-ui-color-mode")) return false;
return c.split("=")[1];
});
if (!value) context.data.theme = "dark";
else context.data.theme = value;
return await context.next();
}
export const onRequest = [
setAuth,
setTheme,
constructHTML,
setBody,
setHeaders,
];