芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/app.optimyar.com/backend/node_modules/reactstrap/src/Button.js
import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { mapToCssModules, tagPropType } from './utils'; const propTypes = { active: PropTypes.bool, 'aria-label': PropTypes.string, block: PropTypes.bool, color: PropTypes.string, disabled: PropTypes.bool, outline: PropTypes.bool, tag: tagPropType, innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]), onClick: PropTypes.func, size: PropTypes.string, children: PropTypes.node, className: PropTypes.string, cssModule: PropTypes.object, close: PropTypes.bool, }; const defaultProps = { color: 'secondary', tag: 'button', }; class Button extends React.Component { constructor(props) { super(props); this.onClick = this.onClick.bind(this); } onClick(e) { if (this.props.disabled) { e.preventDefault(); return; } if (this.props.onClick) { this.props.onClick(e); } } render() { let { active, 'aria-label': ariaLabel, block, className, close, cssModule, color, outline, size, tag: Tag, innerRef, ...attributes } = this.props; if (close && typeof attributes.children === 'undefined') { attributes.children =
×
; } const btnOutlineColor = `btn${outline ? '-outline' : ''}-${color}`; const classes = mapToCssModules(classNames( className, { close }, close || 'btn', close || btnOutlineColor, size ? `btn-${size}` : false, block ? 'btn-block' : false, { active, disabled: this.props.disabled } ), cssModule); if (attributes.href && Tag === 'button') { Tag = 'a'; } const defaultAriaLabel = close ? 'Close' : null; return (
); } } Button.propTypes = propTypes; Button.defaultProps = defaultProps; export default Button;