fix: sidebar cookie handling

This commit is contained in:
shadcn 2024-10-30 20:01:14 +04:00
parent 29f095bcc9
commit a4089ccd9b

View file

@ -81,16 +81,15 @@ const SidebarProvider = React.forwardRef<
const open = openProp ?? _open; const open = openProp ?? _open;
const setOpen = React.useCallback( const setOpen = React.useCallback(
(value: boolean | ((value: boolean) => boolean)) => { (value: boolean | ((value: boolean) => boolean)) => {
const openState = typeof value === 'function' ? value(open) : value;
if (setOpenProp) { if (setOpenProp) {
return setOpenProp?.( setOpenProp(openState);
typeof value === 'function' ? value(open) : value } else {
); _setOpen(openState);
} }
_setOpen(value);
// This sets the cookie to keep the sidebar state. // This sets the cookie to keep the sidebar state.
document.cookie = `${SIDEBAR_COOKIE_NAME}=${open}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`; document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
}, },
[setOpenProp, open] [setOpenProp, open]
); );