docs: support multiple sidebars in a project (#11768)
* changed to new sidebar across projects except resources * finalize multi sidebar support * clean up * remove redundant property * small changes * fixes * generate * fix error * fix initial open
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
import { Sidebar } from "types"
|
||||
|
||||
export const validateSidebarUniqueIds = (
|
||||
sidebars: (Sidebar.RawSidebar | Sidebar.SidebarItemSidebar)[],
|
||||
sidebarIds = new Set<string>()
|
||||
): void => {
|
||||
for (const sidebar of sidebars) {
|
||||
if (sidebarIds.has(sidebar.sidebar_id)) {
|
||||
throw new Error(`Duplicate sidebar item id found: ${sidebar.sidebar_id}`)
|
||||
}
|
||||
|
||||
sidebarIds.add(sidebar.sidebar_id)
|
||||
|
||||
const children = (
|
||||
"items" in sidebar ? sidebar.items : sidebar.children || []
|
||||
).filter(
|
||||
(child) => child.type === "sidebar"
|
||||
) as Sidebar.SidebarItemSidebar[]
|
||||
|
||||
validateSidebarUniqueIds(children, sidebarIds)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user