backpack-ui
Version:
Lonely Planet's Components
131 lines (104 loc) • 3.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
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 _typography = require("../../styles/typography");
var _zIndex = require("../../styles/zIndex");
var _zIndex2 = _interopRequireDefault(_zIndex);
var _color = require("../../utils/color");
var _icon = require("../../utils/icon");
var _icon2 = _interopRequireDefault(_icon);
var _propTypes3 = require("../../utils/propTypes");
var _propTypes4 = _interopRequireDefault(_propTypes3);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var size = 48;
var overlayWidth = 4;
var styles = {
container: {
alignItems: "center",
backgroundColor: _colors2.default.bgPrimary,
color: _colors2.default.accentGray,
display: "flex",
fontSize: _typography.fontSizeHeading7 + "px",
justifyContent: "center",
position: "relative"
},
icon: {
marginLeft: "-" + overlayWidth / _typography.fontSizeHeading7 + "em"
},
img: {
display: "block",
height: "auto",
maxHeight: "100%",
objectFit: "cover",
width: "100%"
},
overlay: {
height: "100%",
position: "absolute",
right: 0,
top: 0,
width: overlayWidth / _typography.fontSizeHeading7 + "em",
zIndex: _zIndex2.default.default
}
};
var AlbumThumbnailImage = function AlbumThumbnailImage(_ref) {
var icon = _ref.icon,
src = _ref.src,
alt = _ref.alt,
backgroundColor = _ref.backgroundColor,
style = _ref.style;
return _react2.default.createElement(
"div",
{
className: "AlbumThumbnailImage",
style: [styles.container, {
backgroundColor: backgroundColor,
height: size / _typography.fontSizeHeading7 + "em",
width: (size + overlayWidth) / _typography.fontSizeHeading7 + "em"
}, !src && { backgroundColor: (0, _color.lighten)(_colors2.default.accentGray, 14) }, style]
},
src && _react2.default.createElement("img", {
style: styles.img,
src: src,
alt: alt
}),
!src && (0, _icon2.default)(icon, {
style: styles.icon
}),
_react2.default.createElement(
"svg",
{
viewBox: "0 0 " + overlayWidth + " " + size,
style: styles.overlay
},
_react2.default.createElement("rect", { fill: _colors2.default.bgPrimary, width: "1", height: "" + size }),
_react2.default.createElement("polygon", { fill: _colors2.default.bgPrimary, points: "4,1 4,0 3,0 2,0 2," + size + " 3," + size + " 4," + size + " 4," + (size - 1) + " 3," + (size - 1) + " 3,1" }),
src && _react2.default.createElement("rect", { fill: "" + (0, _color.rgba)(_colors2.default.bgOverlay, 0.4), x: "1", width: "1", height: "" + size }),
src && _react2.default.createElement("rect", { fill: "" + (0, _color.rgba)(_colors2.default.bgOverlay, 0.4), x: "3", y: "1", width: "1", height: "" + (size - 2) })
)
);
};
AlbumThumbnailImage.propTypes = {
icon: _propTypes2.default.oneOf(["Plus", "List"]),
src: _propTypes2.default.string,
alt: _propTypes2.default.string,
backgroundColor: _propTypes2.default.string,
style: _propTypes4.default.style
};
AlbumThumbnailImage.defaultProps = {
icon: "List",
src: null,
alt: "",
backgroundColor: _colors2.default.bgPrimary,
style: null
};
exports.default = (0, _radium2.default)(AlbumThumbnailImage);