@legion-ui-kit/react-core
Version:
To install the package into your project:
4 lines (3 loc) • 1.34 kB
JavaScript
"use client";
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useState as a,useRef as i,useEffect as n}from"react";import t from"classnames";import r from"./styles.module.scss.js";import{isEmpty as u}from"../../helpers/common.js";const m=m=>{const{activeMainMenuClassName:l,activeMainMenuStyle:c,activeSubMenuClassName:o,activeSubMenuStyle:p,className:b,mainMenuClassName:d,mainMenuStyle:h,menu:M,subMenuClassName:v,subMenuStyle:N,subMenuWrapperClassName:f,subMenuWrapperStyle:y,..._}=m,[S,g]=a({isOpen:!0,height:"auto"}),{isOpen:C,height:O}=S,j=C?O:0,A=i(null),w=t(r.legion_sidebar_menu,b,{[r.open]:C}),x=t(r.sidebar_submenu_wrapper,f),{menu:W,subMenu:$}=M,{label:k,isActive:H}=W,q=t(r.sidebar_menu,d,{[r.active]:H,[`${l}`]:H});n(()=>{if(A&&A.current){const e=M.subMenu?.some(e=>e.isActive);g({isOpen:!!e,height:A.current.offsetHeight})}},[]);return e("div",{className:w,..._,children:[e("div",{className:q,style:{...h,...H?c:{}},onClick:()=>{g(e=>({...e,isOpen:!e.isOpen}))},children:[k,!u($)&&s("i",{className:r.sidebar_menu_arrow})]}),!u($)&&s("div",{ref:A,className:x,style:{...y,height:j},children:$?.map((e,a)=>{const{label:i,isActive:n}=e,u=t(r.sidebar_submenu,v,{[r.active]:n,[`${o}`]:n});return s("div",{className:u,style:{...N,...n?p:{}},children:i},a)})})]})};export{m as default};
//# sourceMappingURL=SidebarMenu.js.map