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.

Media.js 2.5 KiB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  7. var _react = _interopRequireDefault(require("react"));
  8. var _propTypes = _interopRequireDefault(require("prop-types"));
  9. var _classnames = _interopRequireDefault(require("classnames"));
  10. var _utils = require("./utils");
  11. var propTypes = {
  12. body: _propTypes.default.bool,
  13. bottom: _propTypes.default.bool,
  14. children: _propTypes.default.node,
  15. className: _propTypes.default.string,
  16. cssModule: _propTypes.default.object,
  17. heading: _propTypes.default.bool,
  18. left: _propTypes.default.bool,
  19. list: _propTypes.default.bool,
  20. middle: _propTypes.default.bool,
  21. object: _propTypes.default.bool,
  22. right: _propTypes.default.bool,
  23. tag: _utils.tagPropType,
  24. top: _propTypes.default.bool
  25. };
  26. var Media = function Media(props) {
  27. var body = props.body,
  28. bottom = props.bottom,
  29. className = props.className,
  30. cssModule = props.cssModule,
  31. heading = props.heading,
  32. left = props.left,
  33. list = props.list,
  34. middle = props.middle,
  35. object = props.object,
  36. right = props.right,
  37. tag = props.tag,
  38. top = props.top,
  39. attributes = (0, _objectWithoutPropertiesLoose2.default)(props, ["body", "bottom", "className", "cssModule", "heading", "left", "list", "middle", "object", "right", "tag", "top"]);
  40. var defaultTag;
  41. if (heading) {
  42. defaultTag = 'h4';
  43. } else if (attributes.href) {
  44. defaultTag = 'a';
  45. } else if (attributes.src || object) {
  46. defaultTag = 'img';
  47. } else if (list) {
  48. defaultTag = 'ul';
  49. } else {
  50. defaultTag = 'div';
  51. }
  52. var Tag = tag || defaultTag;
  53. var classes = (0, _utils.mapToCssModules)((0, _classnames.default)(className, {
  54. 'media-body': body,
  55. 'media-heading': heading,
  56. 'media-left': left,
  57. 'media-right': right,
  58. 'media-top': top,
  59. 'media-bottom': bottom,
  60. 'media-middle': middle,
  61. 'media-object': object,
  62. 'media-list': list,
  63. media: !body && !heading && !left && !right && !top && !bottom && !middle && !object && !list
  64. }), cssModule);
  65. return _react.default.createElement(Tag, (0, _extends2.default)({}, attributes, {
  66. className: classes
  67. }));
  68. };
  69. Media.propTypes = propTypes;
  70. var _default = Media;
  71. exports.default = _default;