@cntyclub/ui-react 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +9 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/ui/sidebar.tsx +33 -2
package/dist/index.d.ts
CHANGED
|
@@ -1277,10 +1277,18 @@ type SidebarContextProps = {
|
|
|
1277
1277
|
toggleSidebar: () => void;
|
|
1278
1278
|
};
|
|
1279
1279
|
declare function useSidebar(): SidebarContextProps;
|
|
1280
|
-
declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: React$1.ComponentProps<"div"> & {
|
|
1280
|
+
declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, persistKey, className, style, children, ...props }: React$1.ComponentProps<"div"> & {
|
|
1281
1281
|
defaultOpen?: boolean;
|
|
1282
1282
|
open?: boolean;
|
|
1283
1283
|
onOpenChange?: (open: boolean) => void;
|
|
1284
|
+
/**
|
|
1285
|
+
* Remember the expanded/collapsed state in `localStorage` under this key and
|
|
1286
|
+
* restore it on the next load (desktop rail only; the mobile sheet is always
|
|
1287
|
+
* closed on load). Opt-in — omit to keep the sidebar un-persisted. Ignored in
|
|
1288
|
+
* controlled mode (when `open` is provided). The restore runs before first
|
|
1289
|
+
* paint, so there's no expand→collapse flash.
|
|
1290
|
+
*/
|
|
1291
|
+
persistKey?: string;
|
|
1284
1292
|
}): React$1.JSX.Element;
|
|
1285
1293
|
declare function Sidebar({ side, variant, collapsible, className, children, ...props }: React$1.ComponentProps<"div"> & {
|
|
1286
1294
|
side?: "left" | "right";
|
package/dist/index.js
CHANGED
|
@@ -7615,6 +7615,7 @@ function SidebarProvider({
|
|
|
7615
7615
|
defaultOpen = true,
|
|
7616
7616
|
open: openProp,
|
|
7617
7617
|
onOpenChange: setOpenProp,
|
|
7618
|
+
persistKey,
|
|
7618
7619
|
className,
|
|
7619
7620
|
style,
|
|
7620
7621
|
children,
|
|
@@ -7641,11 +7642,24 @@ function SidebarProvider({
|
|
|
7641
7642
|
}
|
|
7642
7643
|
try {
|
|
7643
7644
|
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
7645
|
+
if (persistKey) {
|
|
7646
|
+
window.localStorage.setItem(persistKey, openState ? "true" : "false");
|
|
7647
|
+
}
|
|
7644
7648
|
} catch {
|
|
7645
7649
|
}
|
|
7646
7650
|
},
|
|
7647
|
-
[setOpenProp, open]
|
|
7651
|
+
[setOpenProp, open, persistKey]
|
|
7648
7652
|
);
|
|
7653
|
+
useIsomorphicLayoutEffect(() => {
|
|
7654
|
+
if (!persistKey || openProp !== void 0) return;
|
|
7655
|
+
try {
|
|
7656
|
+
const stored = window.localStorage.getItem(persistKey);
|
|
7657
|
+
if (stored === "true" || stored === "false") {
|
|
7658
|
+
_setOpen(stored === "true");
|
|
7659
|
+
}
|
|
7660
|
+
} catch {
|
|
7661
|
+
}
|
|
7662
|
+
}, [persistKey, openProp]);
|
|
7649
7663
|
const toggleSidebar = React17.useCallback(() => {
|
|
7650
7664
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
7651
7665
|
}, [isMobile, setOpen]);
|