@alifd/next
Version:
A configurable component library for web built on React.
94 lines (84 loc) • 2.96 kB
JavaScript
import _extends from 'babel-runtime/helpers/extends';
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
var _class, _temp;
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import Tag from './tag';
/**
* Tag.Closeable
*/
var Closeable = (_temp = _class = function (_Component) {
_inherits(Closeable, _Component);
function Closeable() {
_classCallCheck(this, Closeable);
return _possibleConstructorReturn(this, _Component.apply(this, arguments));
}
Closeable.prototype.render = function render() {
var _props = this.props,
disabled = _props.disabled,
className = _props.className,
closeArea = _props.closeArea,
onClose = _props.onClose,
afterClose = _props.afterClose,
onClick = _props.onClick,
type = _props.type,
size = _props.size,
children = _props.children,
rtl = _props.rtl,
others = _objectWithoutProperties(_props, ['disabled', 'className', 'closeArea', 'onClose', 'afterClose', 'onClick', 'type', 'size', 'children', 'rtl']);
return React.createElement(
Tag,
_extends({}, others, {
rtl: rtl,
disabled: disabled,
className: className,
closeArea: closeArea,
onClose: onClose,
afterClose: afterClose,
onClick: onClick,
type: type,
size: size,
closable: true
}),
children
);
};
return Closeable;
}(Component), _class.propTypes = {
disabled: PropTypes.bool,
className: PropTypes.any,
/**
* closeable 标签的 onClose 响应区域, tag: 标签体, tail(默认): 关闭按钮
* @enumdesc 标签, 尾部icon
*/
closeArea: PropTypes.oneOf(['tag', 'tail']),
/**
* 点击关闭按钮时的回调
* @param {String} from 事件来源, tag: 标签体点击, tail: 关闭按钮点击
* @returns {Boolean} true则关闭, false阻止关闭
*/
onClose: PropTypes.func,
/**
* 标签关闭后执行的回调
*/
afterClose: PropTypes.func,
/**
* 点击回调
*/
onClick: PropTypes.func,
type: PropTypes.oneOf(['normal', 'primary']),
/**
* 标签的尺寸(large 尺寸为兼容表单场景 large = medium)
*/
size: PropTypes.oneOf(['small', 'medium', 'large']),
children: PropTypes.any,
rtl: PropTypes.bool
}, _class.defaultProps = {
disabled: false,
type: 'normal'
}, _temp);
Closeable.displayName = 'Closeable';
export default Closeable;