1d04fd43fSBartosz Kaszubowskiimport { SidebarNodeProps } from './Sidebar';
2999e0356SBartosz Kaszubowskiimport { SidebarGroup, SidebarCollapsible, SidebarLink } from './index';
3d04fd43fSBartosz Kaszubowski
4d04fd43fSBartosz Kaszubowskiexport const SidebarSection = ({ route, ...rest }: SidebarNodeProps) => {
5d04fd43fSBartosz Kaszubowski  // If the section or group is hidden, or has no content, we should not render it
6d04fd43fSBartosz Kaszubowski  if (route.hidden || !route.children?.length) {
7d04fd43fSBartosz Kaszubowski    return null;
8d04fd43fSBartosz Kaszubowski  }
9d04fd43fSBartosz Kaszubowski
10d04fd43fSBartosz Kaszubowski  return (
11d04fd43fSBartosz Kaszubowski    <SidebarCollapsible key={`section-${route.name}`} info={route}>
12*6c13861cSBartosz Kaszubowski      <div className="mb-2">
13999e0356SBartosz Kaszubowski        {route.children.map(child =>
14999e0356SBartosz Kaszubowski          child.type === 'page' ? (
15999e0356SBartosz Kaszubowski            <SidebarLink key={`${route.name}-${child.name}`} info={child}>
16999e0356SBartosz Kaszubowski              {child.sidebarTitle || child.name}
17999e0356SBartosz Kaszubowski            </SidebarLink>
18999e0356SBartosz Kaszubowski          ) : (
19d04fd43fSBartosz Kaszubowski            <SidebarGroup
20d04fd43fSBartosz Kaszubowski              {...rest}
21999e0356SBartosz Kaszubowski              key={`group-${child.name}-${route.name}`}
22999e0356SBartosz Kaszubowski              route={child}
23d04fd43fSBartosz Kaszubowski              parentRoute={route}
24d04fd43fSBartosz Kaszubowski            />
25999e0356SBartosz Kaszubowski          )
26999e0356SBartosz Kaszubowski        )}
27999e0356SBartosz Kaszubowski      </div>
28d04fd43fSBartosz Kaszubowski    </SidebarCollapsible>
29d04fd43fSBartosz Kaszubowski  );
30d04fd43fSBartosz Kaszubowski};
31