UNPKG

backpack-ui

Version:
131 lines (104 loc) 3.7 kB
"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);