UNPKG

chowa

Version:

UI component library based on React

52 lines (51 loc) 2.01 kB
/** * @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;