Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 

77 řádky
2.5 KiB

  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  3. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread";
  4. import React from 'react';
  5. import PropTypes from 'prop-types';
  6. import classNames from 'classnames';
  7. import { mapToCssModules, tagPropType } from './utils';
  8. import Fade from './Fade';
  9. var propTypes = {
  10. children: PropTypes.node,
  11. className: PropTypes.string,
  12. closeClassName: PropTypes.string,
  13. closeAriaLabel: PropTypes.string,
  14. cssModule: PropTypes.object,
  15. color: PropTypes.string,
  16. fade: PropTypes.bool,
  17. isOpen: PropTypes.bool,
  18. toggle: PropTypes.func,
  19. tag: tagPropType,
  20. transition: PropTypes.shape(Fade.propTypes),
  21. innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])
  22. };
  23. var defaultProps = {
  24. color: 'success',
  25. isOpen: true,
  26. tag: 'div',
  27. closeAriaLabel: 'Close',
  28. fade: true,
  29. transition: _objectSpread({}, Fade.defaultProps, {
  30. unmountOnExit: true
  31. })
  32. };
  33. function Alert(props) {
  34. var className = props.className,
  35. closeClassName = props.closeClassName,
  36. closeAriaLabel = props.closeAriaLabel,
  37. cssModule = props.cssModule,
  38. Tag = props.tag,
  39. color = props.color,
  40. isOpen = props.isOpen,
  41. toggle = props.toggle,
  42. children = props.children,
  43. transition = props.transition,
  44. fade = props.fade,
  45. innerRef = props.innerRef,
  46. attributes = _objectWithoutPropertiesLoose(props, ["className", "closeClassName", "closeAriaLabel", "cssModule", "tag", "color", "isOpen", "toggle", "children", "transition", "fade", "innerRef"]);
  47. var classes = mapToCssModules(classNames(className, 'alert', "alert-" + color, {
  48. 'alert-dismissible': toggle
  49. }), cssModule);
  50. var closeClasses = mapToCssModules(classNames('close', closeClassName), cssModule);
  51. var alertTransition = _objectSpread({}, Fade.defaultProps, transition, {
  52. baseClass: fade ? transition.baseClass : '',
  53. timeout: fade ? transition.timeout : 0
  54. });
  55. return React.createElement(Fade, _extends({}, attributes, alertTransition, {
  56. tag: Tag,
  57. className: classes,
  58. in: isOpen,
  59. role: "alert",
  60. innerRef: innerRef
  61. }), toggle ? React.createElement("button", {
  62. type: "button",
  63. className: closeClasses,
  64. "aria-label": closeAriaLabel,
  65. onClick: toggle
  66. }, React.createElement("span", {
  67. "aria-hidden": "true"
  68. }, "\xD7")) : null, children);
  69. }
  70. Alert.propTypes = propTypes;
  71. Alert.defaultProps = defaultProps;
  72. export default Alert;