Files
web/packages/common/utils/theme/serverContext.ts
Erik Tiekstra 3a38e99a71 Feat/BOOK-63 hotel subpages branding
* feat(BOOK-63): Replaced css variables and components to apply hotel branding on subpages
* feat(BOOK-63): Replaced css variables and components to apply hotel branding on hotel page map view

Approved-by: Christel Westerberg
Approved-by: Matilda Landström
2025-11-05 08:30:55 +00:00

32 lines
662 B
TypeScript

import "server-only"
import { cache } from "react"
import { DEFAULT_THEME, type Theme } from "."
const getRef = cache(() => ({ current: DEFAULT_THEME as Theme }))
/**
* Set the global theme
*
* It works kind of like React's context,
* but on the server side, per request.
*
* @param newTheme
*/
export function setTheme(newTheme: Theme) {
getRef().current = newTheme
return newTheme
}
/**
* Get the global theme
*
* Note: This must be called after setTheme() has been called in the page/layout.
* If called before setTheme(), it will return DEFAULT_THEME.
*/
export function getTheme(): Theme {
return getRef().current ?? DEFAULT_THEME
}