Skip to content

Instantly share code, notes, and snippets.

@merthanmerter
Last active April 28, 2025 07:38
Show Gist options
  • Save merthanmerter/ac395136dcb4509581b7c786b777401f to your computer and use it in GitHub Desktop.
Save merthanmerter/ac395136dcb4509581b7c786b777401f to your computer and use it in GitHub Desktop.
shadcn sidebar cookie state
const SIDEBAR_DEFAULT_OPEN = true; /* (add) */
const SIDEBAR_COOKIE_NAME = "_sidebar";
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
// ...
function SidebarProvider({
defaultOpen, /* :true (remove) */
// ...
}
// ...
) {
const [_open, _setOpen] = React.useState(() => {
if (defaultOpen !== undefined) {
return defaultOpen;
}
const cookies = Object.fromEntries(
document.cookie.split("; ").map((c) => {
const [key, ...v] = c.split("=");
return [key, v.join("=")];
}),
);
const sideBarCookie = cookies[SIDEBAR_COOKIE_NAME];
return sideBarCookie != null
? sideBarCookie === "true"
: SIDEBAR_DEFAULT_OPEN;
})
// ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment