@legion-ui-kit/react-core
Version:
<div align="center"> <img height="108" width="116" src="https://legion.digitaltelkom.id/favicon.svg?v=4643a71fb65fa61a5f2b266b769ea7b1" /> <h1 align="center">Legion UI Kit - React Core</h1> </div>
4 lines (3 loc) • 1.8 kB
JavaScript
"use client";
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),i=require("classnames"),t=require("./styles.module.scss.cjs"),a=require("../../hooks/useResizeObserver.cjs"),u=require("../../helpers/common.cjs");function l(e){return e&&e.__esModule?e:{default:e}}var n=l(i);exports.default=i=>{const{activeMainMenuClassName:l,activeMainMenuStyle:r,activeSubMenuClassName:c,activeSubMenuStyle:d,className:h,mainMenuClassName:m,mainMenuStyle:f,menu:p,subMenuClassName:o,subMenuStyle:b,subMenuWrapperClassName:v,subMenuWrapperStyle:M,style:g,...y}=i,O=s.useRef(null),_=s.useRef(null),N=a.default(O),j=a.default(_),{menu:x,subMenu:S,initialOpen:q}=p,{label:C,isActive:A}=x,E=!!S?.some(e=>e.isActive),[R,k]=s.useState({isOpen:q||A||E,height:"var(--sidebar-sizing-height-menu)"}),w=n.default(t.default.legion_sidebar_menu,h,{[t.default.open]:R.isOpen}),z={...g,height:R.height},W=n.default(t.default.sidebar_menu,m,{[t.default.active]:A||E,[l??""]:A||E}),P=n.default(t.default.sidebar_submenu_wrapper,v);s.useEffect(()=>{if(!N)return;const e=R.isOpen&&j?N.height+j.height:N.height;k({isOpen:R.isOpen,height:e})},[N,j,R.isOpen]);return e.jsxs("div",{className:w,style:z,...y,children:[e.jsxs("div",{ref:O,className:W,style:{...f,...A||E?r:{}},onClick:()=>{if(!N)return;const e=!R.isOpen&&j?N.height+j.height:N.height;k(s=>({...s,isOpen:!s.isOpen,height:e}))},children:[C,!u.isEmpty(S)&&e.jsx("i",{className:t.default.sidebar_menu_arrow})]}),!u.isEmpty(S)&&e.jsx("div",{ref:_,className:P,style:M,children:S?.map((s,i)=>{const{label:a,isActive:u}=s,l=n.default(t.default.sidebar_submenu,o,{[t.default.active]:u,[c??""]:u});return e.jsx("div",{className:l,style:{...b,...u?d:{}},children:a},i)})})]})};
//# sourceMappingURL=SidebarMenu.cjs.map