docs: collapse sidebar by default in main docs + persist state (#8608)

* docs: collapse sidebar by default in main docs + persist state

* persist sidebar hidden
This commit is contained in:
Shahed Nasser
2024-08-16 09:29:14 +03:00
committed by GitHub
parent 1bfdceb34c
commit 0cc2a62b9b
9 changed files with 101 additions and 6 deletions

View File

@@ -23,7 +23,12 @@ export const SidebarItemCategory = ({
item.initialOpen !== undefined ? item.initialOpen : expandItems
)
const childrenRef = useRef<HTMLUListElement>(null)
const { isChildrenActive } = useSidebar()
const {
isChildrenActive,
updatePersistedCategoryState,
getPersistedCategoryState,
persistState,
} = useSidebar()
useEffect(() => {
if (open && !item.loaded) {
@@ -44,6 +49,16 @@ export const SidebarItemCategory = ({
}
}, [isChildrenActive])
useEffect(() => {
if (!persistState) {
return
}
const persistedOpen = getPersistedCategoryState(item.title)
if (persistedOpen !== undefined) {
setOpen(persistedOpen)
}
}, [persistState])
const handleOpen = () => {
item.onOpen?.()
}
@@ -70,6 +85,9 @@ export const SidebarItemCategory = ({
if (!open) {
handleOpen()
}
if (persistState) {
updatePersistedCategoryState(item.title, !open)
}
setOpen((prev) => !prev)
}}
>