chowa
Version:
UI component library based on React
52 lines (51 loc) • 2.01 kB
JavaScript
/**
* @license chowa v1.1.3
*
* Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const PropTypes = require("prop-types");
const classnames_1 = require("classnames");
const utils_1 = require("../utils");
const icon_1 = require("../icon");
const DropdownButton = (props) => {
const { children, className, style, disabled, size, bordered, open, tabIndex } = props;
const componentClass = classnames_1.default({
[utils_1.preClass('dropdown-btn')]: true,
[utils_1.preClass('dropdown-btn-bordered')]: bordered,
[utils_1.preClass('dropdown-btn-disabled')]: disabled,
[utils_1.preClass(`dropdown-btn-${size}`)]: size !== 'default',
[utils_1.preClass('dropdown-btn-open')]: open,
[className]: utils_1.isExist(className)
});
const iconClass = classnames_1.default({
[utils_1.preClass('dropdown-btn-icon')]: true,
[utils_1.preClass('dropdown-btn-icon-active')]: open
});
return (React.createElement("button", Object.assign({}, utils_1.otherProps(DropdownButton.propTypes, props), { className: componentClass, style: style, tabIndex: tabIndex }),
children,
React.createElement("span", { className: iconClass },
React.createElement(icon_1.default, { type: bordered ? 'arrow-down' : 'arrow-down-insert' }))));
};
DropdownButton.propTypes = {
className: PropTypes.string,
style: PropTypes.object,
tabIndex: PropTypes.number,
disabled: PropTypes.bool,
bordered: PropTypes.bool,
size: PropTypes.oneOf(['small', 'default', 'large']),
open: PropTypes.bool
};
DropdownButton.defaultProps = {
tabIndex: 0,
disabled: false,
bordered: false,
size: 'default',
open: false
};
exports.default = DropdownButton;