@redocly/graphql-docs
Version:
Redocly GraphQL docs
2 lines (1 loc) • 1 kB
JavaScript
import{jsx as r,Fragment as o,jsxs as u}from"react/jsx-runtime";import{useCallback as c,useContext as d,useEffect as p,useState as l}from"react";import{Sidebar as S,SidebarLogo as b,MenuItem as a}from"@redocly/theme";import{useSettings as f}from"../settings/settings.context.js";import{SidebarWrapper as h}from"./styled.js";import{MenuStoreContext as I}from"../menu/index.js";import{useSidebarItemsWithState as g}from"./use-sidebar-items-with-state.js";function L(){const{sidebar:s,apiLogo:e}=f(),n=d(I)?.getSidebarItems()||[],i=g(n);return s?.hide?null:r(h,{children:r(S,{versions:null,menu:u(o,{children:[r(b,{dataTestId:"logo",...e}),m(i)]})})})}const m=s=>r(o,{children:s.map((e,t)=>e.type==="group"&&e.items.length>0?r(x,{item:e},t):r(a,{item:e},t))}),x=s=>{const{item:e}=s,[t,n]=l(e.active||e.hasActiveSubItem);p(()=>{n(e.active||e.hasActiveSubItem)},[e.active,e.hasActiveSubItem]);const i=c(()=>{n(!t)},[t]);return r(a,{item:e,isExpanded:t,onClick:i,children:m(e.items)})};export{L as Sidebar};