mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-24 17:35:16 +00:00
71 lines
2.0 KiB
JavaScript
71 lines
2.0 KiB
JavaScript
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
||
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
||
|
import React from 'react';
|
||
|
import PropTypes from 'prop-types';
|
||
|
import classNames from 'classnames';
|
||
|
import { mapToCssModules, tagPropType } from './utils';
|
||
|
var propTypes = {
|
||
|
body: PropTypes.bool,
|
||
|
bottom: PropTypes.bool,
|
||
|
children: PropTypes.node,
|
||
|
className: PropTypes.string,
|
||
|
cssModule: PropTypes.object,
|
||
|
heading: PropTypes.bool,
|
||
|
left: PropTypes.bool,
|
||
|
list: PropTypes.bool,
|
||
|
middle: PropTypes.bool,
|
||
|
object: PropTypes.bool,
|
||
|
right: PropTypes.bool,
|
||
|
tag: tagPropType,
|
||
|
top: PropTypes.bool
|
||
|
};
|
||
|
|
||
|
var Media = function Media(props) {
|
||
|
var body = props.body,
|
||
|
bottom = props.bottom,
|
||
|
className = props.className,
|
||
|
cssModule = props.cssModule,
|
||
|
heading = props.heading,
|
||
|
left = props.left,
|
||
|
list = props.list,
|
||
|
middle = props.middle,
|
||
|
object = props.object,
|
||
|
right = props.right,
|
||
|
tag = props.tag,
|
||
|
top = props.top,
|
||
|
attributes = _objectWithoutPropertiesLoose(props, ["body", "bottom", "className", "cssModule", "heading", "left", "list", "middle", "object", "right", "tag", "top"]);
|
||
|
|
||
|
var defaultTag;
|
||
|
|
||
|
if (heading) {
|
||
|
defaultTag = 'h4';
|
||
|
} else if (attributes.href) {
|
||
|
defaultTag = 'a';
|
||
|
} else if (attributes.src || object) {
|
||
|
defaultTag = 'img';
|
||
|
} else if (list) {
|
||
|
defaultTag = 'ul';
|
||
|
} else {
|
||
|
defaultTag = 'div';
|
||
|
}
|
||
|
|
||
|
var Tag = tag || defaultTag;
|
||
|
var classes = mapToCssModules(classNames(className, {
|
||
|
'media-body': body,
|
||
|
'media-heading': heading,
|
||
|
'media-left': left,
|
||
|
'media-right': right,
|
||
|
'media-top': top,
|
||
|
'media-bottom': bottom,
|
||
|
'media-middle': middle,
|
||
|
'media-object': object,
|
||
|
'media-list': list,
|
||
|
media: !body && !heading && !left && !right && !top && !bottom && !middle && !object && !list
|
||
|
}), cssModule);
|
||
|
return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {
|
||
|
className: classes
|
||
|
}));
|
||
|
};
|
||
|
|
||
|
Media.propTypes = propTypes;
|
||
|
export default Media;
|