UNPKG

backpack-ui

Version:
155 lines (128 loc) 4.06 kB
"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);