Geometrically aac2da70cf
Fix authentication hydration issue (#1048)
* Fix authentication hydration issue

* reset existing cookies

* Update if statement chaining
2023-03-13 20:21:55 -07:00

35 lines
939 B
JavaScript

export default defineNitroPlugin((nitroApp) => {
nitroApp.hooks.hook('render:html', (html, { event }) => {
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)
}
}
})
})