@chief-editor/ui
Version:
UI Component for chief editor
1 lines • 2.02 kB
JavaScript
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var o,r=1,t=arguments.length;r<t;r++)for(var n in o=arguments[r])Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n]);return e}).apply(this,arguments)},__rest=this&&this.__rest||function(e,o){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(r[t[n]]=e[t[n]])}return r};import{RcMenu}from"@rc-hooks/menu";import{RcPopper}from"@rc-hooks/popper";import{usePrevProp,useRefCallback}from"@rc-hooks/use";import{classnames,shallowEqual}from"@co-hooks/util";import React,{useState}from"react";import{usePrefixCls}from"../../hooks/usePrefixCls";import{ItemGroup}from"./components/ItemGroup";import{MenuItem}from"./components/MenuItem";import{SubMenu}from"./components/SubMenu";import{MenuDivider}from"./components/MenuDivider";export function Menu(e){var o,r=e.type,t=void 0===r?"vertical":r,n=e.openIds,s=e.collapse,l=void 0!==s&&s,i=e.showLine,p=void 0!==i&&i,a=e.children,u=e.style,c=e.theme,m=void 0===c?"dark":c,f=e.onOpenChange,h=e.onClick,v=__rest(e,["type","openIds","collapse","showLine","children","style","theme","onOpenChange","onClick"]),y={theme:m,collapse:l,showLine:p},d="vertical"===t||l,M=l?"collapse":"uncollapse",P=l?[]:n,b=useState(P),O=b[0],_=b[1],C=useRefCallback((function(e){_(e),f&&f(e)})),g=useRefCallback((function(e){d&&_([]),h&&h(e)})),k=usePrevProp(l)[0];usePrevProp(P,shallowEqual)[0]||_(P),k||_(P);var I=classnames(usePrefixCls("menu",((o={})[M]=!0,o)),usePrefixCls("menu-"+m));return React.createElement(RcPopper,null,React.createElement(RcMenu,__assign({type:t,openIds:O,collapse:l,onOpenChange:C,onClick:g,extraProps:y},v),React.createElement("div",{className:I,style:u},a)))}Menu.SubMenu=SubMenu,Menu.Item=MenuItem,Menu.ItemGroup=ItemGroup,Menu.Divider=MenuDivider;