UNPKG

cjd-parkball

Version:

> 中后台业务组件库,中后台就像公园,进入需要买门票(登录),所以以 Parkball(公园球) 命名,公园内必定捕获!作为一个组件库,提供使用方法文档,方便开发者的调用

42 lines (39 loc) 1.28 kB
import React, { isValidElement } from 'react' import { Menu, Dropdown, Divider } from 'antd' import './index.scss' export default (argOperation, operationItemLength = 2) => { if (Array.isArray(argOperation)) { let operation = argOperation.filter(o => !!o || o === 0) if (operation.length > operationItemLength) { const foldedItems = operation.splice(operationItemLength, operation.length) operation = operation.slice(0, operationItemLength) const overlay = ( <Menu> {foldedItems.map((v, i) => (<Menu.Item key={i}>{v}</Menu.Item>))} </Menu> ) const foldMenu = ( <Dropdown overlay={overlay}> <a className="ant-dropdown-link">···</a> </Dropdown> ) operation.push(foldMenu) } return operation.map((oper, i) => { let loop = oper if (isValidElement(operation[i])) { loop = React.cloneElement( operation[i], { key: `pk-element-${i}` }, ) } else if (operation[i] instanceof Function) { loop = operation[i]({ key: `pk-element-${i}` }) } return [ loop, i !== operation.length - 1 ? <Divider type="vertical" key={`pk-divider-${i}`} /> : null, ] }) } return argOperation }