backpack-ui
Version:
Lonely Planet's Components
155 lines (128 loc) • 4.06 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _objectWithoutProperties2 = require("babel-runtime/helpers/objectWithoutProperties");
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
var _radium = require("radium");
var _radium2 = _interopRequireDefault(_radium);
var _colors = require("../../styles/colors");
var _colors2 = _interopRequireDefault(_colors);
var _categoryLabelLink = require("../categoryLabelLink");
var _categoryLabelLink2 = _interopRequireDefault(_categoryLabelLink);
var _menu = require("./menu");
var _menu2 = _interopRequireDefault(_menu);
var _propTypes3 = require("../../utils/propTypes");
var _propTypes4 = _interopRequireDefault(_propTypes3);
var _text = require("../text");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var styles = {
container: {
maxWidth: "100%",
minWidth: 0,
position: "relative",
backgroundColor: _colors2.default.borderPrimary,
backgroundPosition: "center",
backgroundRepeat: "no-repeat",
backgroundSize: "cover",
marginBottom: "10px"
},
border: {
backgroundColor: "" + _colors2.default.borderPrimary,
width: "80%",
margin: "10px auto 2px"
},
menu: {
right: "8px",
bottom: "8px",
position: "absolute"
}
};
var imageSizes = {
portrait: {
width: "192px",
height: "288px"
},
landscape: {
width: "361px",
height: "288px"
}
};
var CardBook = function CardBook(_ref) {
var imageSrc = _ref.imageSrc,
aspectRatio = _ref.aspectRatio,
title = _ref.title,
subtitle = _ref.subtitle,
shopLinkText = _ref.shopLinkText,
shopLinkUrl = _ref.shopLinkUrl,
style = _ref.style,
hideBorder = _ref.hideBorder,
hideMenu = _ref.hideMenu,
menuProps = (0, _objectWithoutProperties3.default)(_ref, ["imageSrc", "aspectRatio", "title", "subtitle", "shopLinkText", "shopLinkUrl", "style", "hideBorder", "hideMenu"]);
return _react2.default.createElement(
"div",
{ style: [{ width: "" + imageSizes[aspectRatio].width }, style] },
_react2.default.createElement(
"div",
{
style: [styles.container, { backgroundImage: "url(" + imageSrc + ")",
height: "" + imageSizes[aspectRatio].height }]
},
!hideMenu && _react2.default.createElement(
"div",
{ style: styles.menu },
_react2.default.createElement(_menu2.default, menuProps)
)
),
_react2.default.createElement(
"div",
{ style: { textAlign: "center" } },
_react2.default.createElement(
_text.Heading,
{
size: 6,
level: 2
},
title
),
subtitle && _react2.default.createElement(
_text.Heading,
{
size: 8,
level: 2,
style: { color: _colors2.default.textSecondary }
},
subtitle
),
!hideBorder && _react2.default.createElement("hr", { style: styles.border }),
shopLinkUrl && shopLinkText && _react2.default.createElement(
_categoryLabelLink2.default,
{ href: shopLinkUrl },
shopLinkText
)
)
);
};
CardBook.propTypes = {
title: _propTypes2.default.string.isRequired,
imageSrc: _propTypes2.default.string.isRequired,
subtitle: _propTypes2.default.string,
shopLinkUrl: _propTypes2.default.string,
shopLinkText: _propTypes2.default.string,
aspectRatio: _propTypes2.default.oneOf(["portrait", "landscape"]),
hideShareButton: _propTypes2.default.bool,
hideBorder: _propTypes2.default.bool,
hideMenu: _propTypes2.default.bool,
style: _propTypes4.default.style
};
CardBook.defaultProps = {
aspectRatio: "portrait",
hideShareButton: false,
hideBorder: false,
hideMenu: false
};
exports.default = (0, _radium2.default)(CardBook);