UNPKG

zarm-web

Version:
60 lines (55 loc) 1.35 kB
import React from 'react'; import classnames from 'classnames'; import { isAddon } from '../PropsType'; import { handleFillType } from '../handler'; export default function Addon(props) { const { addon, size, param, shape, composePosition } = props; const cls = classnames({ [`shape-${shape}`]: !!shape, 'ui-addon': true, [`size-${size}`]: !!size, [`compose-position-${composePosition}`]: !!composePosition }); const params = Array.isArray(param) ? [param] : param; if (typeof addon === 'function') { // eslint-disable-next-line return addon.apply(undefined, params); } if (isAddon(addon)) { const { fillType } = addon; const addonElem = addon.addon; let childElem; if (typeof addonElem === 'function') { // eslint-disable-next-line childElem = addonElem.apply(undefined, params); } else { childElem = addonElem; } const bgColor = handleFillType(fillType); return React.createElement("div", { className: cls, style: { backgroundColor: bgColor } }, childElem); } const bgColor = handleFillType('default'); return React.createElement("div", { className: cls, style: { backgroundColor: bgColor } }, addon); } Addon.defaultProps = { position: 'before', shape: 'radius' };