diff --git a/functions/_middleware.ts b/functions/_middleware.ts index 7604adf..02deded 100644 --- a/functions/_middleware.ts +++ b/functions/_middleware.ts @@ -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, +];