solid-primitives
solid-primitives copied to clipboard
[storage] `cookieStorage`'s `maxAge` option doesn't work
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
I confirm this error
The problem is serializeCookieOptions doesn't convert maxAge to max-age
Thanks, will fix.