You've already forked AstralRinth
forked from didirus/AstralRinth
Migrate to Turborepo (#1251)
This commit is contained in:
38
apps/frontend/src/server/plugins/theme.js
Normal file
38
apps/frontend/src/server/plugins/theme.js
Normal file
@@ -0,0 +1,38 @@
|
||||
export default defineNitroPlugin((nitroApp) => {
|
||||
nitroApp.hooks.hook('render:html', (html, { event }) => {
|
||||
try {
|
||||
const cookies = parseCookies(event)
|
||||
|
||||
if (cookies && cookies['color-mode']) {
|
||||
const theme = JSON.parse(cookies['color-mode'])
|
||||
|
||||
html.htmlAttrs.push(`class="${theme.value}-mode"`)
|
||||
} else {
|
||||
html.htmlAttrs.push(`class="dark-mode"`)
|
||||
}
|
||||
|
||||
// Reset cookie attributes to correct ones
|
||||
if (cookies) {
|
||||
const opts = {
|
||||
maxAge: 60 * 60 * 24 * 365 * 10,
|
||||
sameSite: 'lax',
|
||||
secure: true,
|
||||
httpOnly: false,
|
||||
path: '/',
|
||||
}
|
||||
|
||||
if (cookies['auth-token']) {
|
||||
setCookie(event, 'auth-token', cookies['auth-token'], opts)
|
||||
}
|
||||
if (cookies['color-mode']) {
|
||||
setCookie(event, 'color-mode', cookies['color-mode'], opts)
|
||||
}
|
||||
if (cookies.cosmetics) {
|
||||
setCookie(event, 'cosmetics', cookies.cosmetics, opts)
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
}
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user