You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

45 lines
1.5 KiB

  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  3. import React from 'react';
  4. import PropTypes from 'prop-types';
  5. import classNames from 'classnames';
  6. import { mapToCssModules, tagPropType } from './utils';
  7. import InputGroupText from './InputGroupText';
  8. var propTypes = {
  9. tag: tagPropType,
  10. addonType: PropTypes.oneOf(['prepend', 'append']).isRequired,
  11. children: PropTypes.node,
  12. className: PropTypes.string,
  13. cssModule: PropTypes.object
  14. };
  15. var defaultProps = {
  16. tag: 'div'
  17. };
  18. var InputGroupAddon = function InputGroupAddon(props) {
  19. var className = props.className,
  20. cssModule = props.cssModule,
  21. Tag = props.tag,
  22. addonType = props.addonType,
  23. children = props.children,
  24. attributes = _objectWithoutPropertiesLoose(props, ["className", "cssModule", "tag", "addonType", "children"]);
  25. var classes = mapToCssModules(classNames(className, 'input-group-' + addonType), cssModule); // Convenience to assist with transition
  26. if (typeof children === 'string') {
  27. return React.createElement(Tag, _extends({}, attributes, {
  28. className: classes
  29. }), React.createElement(InputGroupText, {
  30. children: children
  31. }));
  32. }
  33. return React.createElement(Tag, _extends({}, attributes, {
  34. className: classes,
  35. children: children
  36. }));
  37. };
  38. InputGroupAddon.propTypes = propTypes;
  39. InputGroupAddon.defaultProps = defaultProps;
  40. export default InputGroupAddon;