import type { SidebarDivider as ISidebarDivider, SidebarItem as ISidebarItem, SidebarSectionHeader as ISidebarSectionHeader, NormalizedSidebarGroup, SidebarData, } from '@rspress/core'; import { useSidebarDynamic } from '@rspress/core/runtime'; import { SidebarDivider } from './SidebarDivider'; import { SidebarGroup } from './SidebarGroup'; import { SidebarItem } from './SidebarItem'; import { SidebarSectionHeader } from './SidebarSectionHeader'; import { isSidebarDivider, isSidebarGroup, isSidebarSectionHeader, } from './utils'; export function Sidebar() { const [sidebarData, setSidebarData] = useSidebarDynamic(); return ( ); } export function SidebarList({ sidebarData, setSidebarData, }: { sidebarData: SidebarData; setSidebarData: React.Dispatch>; }) { return ( <> {sidebarData.map((item, index) => { return ( ); })} ); } function SidebarListItem(props: { item: | NormalizedSidebarGroup | ISidebarItem | ISidebarDivider | ISidebarSectionHeader; index: number; setSidebarData: React.Dispatch>; }) { const { item, index, setSidebarData } = props; if (isSidebarDivider(item)) { return ( ); } if (isSidebarSectionHeader(item)) { return ( ); } if (isSidebarGroup(item)) { return ( ); } return ; }