UNPKG

1.59 kBJavaScriptView Raw
1import _extends from "@babel/runtime/helpers/esm/extends";
2import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3import classNames from 'classnames';
4import React from 'react';
5import { useBootstrapPrefix } from './ThemeProvider';
6import SafeAnchor from './SafeAnchor';
7var defaultProps = {
8 variant: 'primary',
9 active: false,
10 disabled: false
11};
12var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
13 var bsPrefix = _ref.bsPrefix,
14 variant = _ref.variant,
15 size = _ref.size,
16 active = _ref.active,
17 className = _ref.className,
18 block = _ref.block,
19 type = _ref.type,
20 as = _ref.as,
21 props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "variant", "size", "active", "className", "block", "type", "as"]);
22
23 var prefix = useBootstrapPrefix(bsPrefix, 'btn');
24 var classes = classNames(className, prefix, active && 'active', variant && prefix + "-" + variant, block && prefix + "-block", size && prefix + "-" + size);
25
26 if (props.href) {
27 return /*#__PURE__*/React.createElement(SafeAnchor, _extends({}, props, {
28 as: as,
29 ref: ref,
30 className: classNames(classes, props.disabled && 'disabled')
31 }));
32 }
33
34 if (ref) {
35 props.ref = ref;
36 }
37
38 if (type) {
39 props.type = type;
40 } else if (!as) {
41 props.type = 'button';
42 }
43
44 var Component = as || 'button';
45 return /*#__PURE__*/React.createElement(Component, _extends({}, props, {
46 className: classes
47 }));
48});
49Button.displayName = 'Button';
50Button.defaultProps = defaultProps;
51export default Button;
\No newline at end of file