[storage] `cookieStorage`'s `maxAge` option doesn't work
yume-chan opened this issue · comments
Simon Chan commented
Describe the bug
Create a persisted signal using cookieStorage
and passing the maxAge
option, but the created cookie is a session cookie.
In the linked StackBlitz project, click "Open in New Tab" button at top-right corner. Looks like it can't set cookies from an iframe.
const [maxAge, setMaxAge] = makePersisted(createSignal('initial'), {
name: 'maxAge',
storage: cookieStorage,
storageOptions: { path: '/', maxAge: 60 * 60 * 24 * 7 },
});
const [expires, setExpires] = makePersisted(createSignal('initial'), {
name: 'expires',
storage: cookieStorage,
storageOptions: {
path: '/',
expires: new Date(Date.now() + 60 * 60 * 24 * 7 * 1000),
},
});
createEffect(() => {
setMaxAge('hello');
setExpires('hello');
});
Minimal Reproduction Link
https://stackblitz.com/edit/github-n4ho5j-nffe5j?file=src%2Froutes%2Findex.tsx
sh1man999 commented
I confirm this error
Jayson Minard commented
The problem is serializeCookieOptions
doesn't convert maxAge
to max-age
Alex Lohr commented
Thanks, will fix.