backpack-ui
Version:
Lonely Planet's Components
212 lines (172 loc) • 6.17 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require("babel-runtime/helpers/defineProperty");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _anchor;
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 _mq = require("../../styles/mq");
var _mq2 = _interopRequireDefault(_mq);
var _timing = require("../../styles/timing");
var _timing2 = _interopRequireDefault(_timing);
var _zIndex = require("../../styles/zIndex");
var _zIndex2 = _interopRequireDefault(_zIndex);
var _color = require("../../utils/color");
var _font = require("../../utils/font");
var _font2 = _interopRequireDefault(_font);
var _categoryLabel = require("../categoryLabel");
var _categoryLabel2 = _interopRequireDefault(_categoryLabel);
var _heading = require("../heading");
var _heading2 = _interopRequireDefault(_heading);
var _icon = require("../icon");
var _createQAHook = require("../../utils/createQAHook");
var _createQAHook2 = _interopRequireDefault(_createQAHook);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var styles = {
anchor: (_anchor = {
alignItems: "center",
backgroundColor: "#1f1f1f",
color: _colors2.default.bgPrimary,
display: "flex",
flexDirection: "column",
justifyContent: "center",
maxHeight: "420px",
minHeight: "320px",
overflow: "hidden",
padding: "30px " + 60 / 1290 * 100 + "%",
position: "relative",
textAlign: "center",
textDecoration: "none"
}, (0, _defineProperty3.default)(_anchor, "@media (min-width: " + _mq2.default.min[960] + ")", {
minHeight: "420px"
}), (0, _defineProperty3.default)(_anchor, ":focus", {
outline: "1px lightgray dotted",
outlineOffset: "2px"
}), _anchor),
container: {
position: "relative",
maxWidth: "520px",
zIndex: _zIndex2.default.default + 1
},
fauxButton: (0, _defineProperty3.default)({
border: "1px solid rgba(" + (0, _color.rgb)(_colors2.default.bgPrimary) + ", .3)",
borderRadius: "32px",
display: "inline-block",
fontFamily: (0, _font2.default)("benton"),
fontSize: "11px",
fontWeight: 500,
lineHeight: 1,
marginTop: "17px",
padding: "10px 16px 9px",
textTransform: "uppercase"
}, "@media (min-width: " + _mq2.default.min[480] + ")", {
marginTop: "23px"
}),
image: {
display: "block",
height: "100%",
left: 0,
objectFit: "cover",
opacity: 0.4,
position: "absolute",
top: 0,
transition: "opacity " + _timing2.default.slow + " ease-in-out,\n transform " + _timing2.default.slow + " ease-in-out",
width: "100%",
zIndex: _zIndex2.default.default
}
};
var css = "\n .ArticlePaginationItem:hover img,\n .ArticlePaginationItem:active img,\n .ArticlePaginationItem:focus img {\n opacity: 0.2;\n transform: scale(1.05);\n }\n\n .ArticlePaginationItem .Heading {\n font-size: 32px !important;\n }\n\n @media (min-width: " + _mq2.default.min[960] + ") {\n .ArticlePaginationItem .Heading {\n font-size: 40px !important;\n line-height: " + 46 / 40 + " !important;\n margin-top: 7px !important;\n }\n }\n";
function markup(htmlContent) {
return {
__html: htmlContent
};
}
var ArticlePaginationItem = function ArticlePaginationItem(_ref) {
var title = _ref.title,
href = _ref.href,
image = _ref.image,
imageAlt = _ref.imageAlt,
category = _ref.category,
page = _ref.page,
style = _ref.style,
qaHook = _ref.qaHook;
return _react2.default.createElement(
"a",
{ className: "ArticlePaginationItem", href: href, style: [styles.anchor, style], "data-testid": qaHook ? (0, _createQAHook2.default)(page, "ArticlePaginationItem", "link") : null },
_react2.default.createElement("style", { dangerouslySetInnerHTML: markup(css) }),
_react2.default.createElement(
"div",
{ style: styles.container },
category && _react2.default.createElement(
_categoryLabel2.default,
{ style: { color: _colors2.default.bgPrimary } },
category
),
_react2.default.createElement(
_heading2.default,
{
level: 3,
tracking: "tight",
weight: "thick",
override: {
color: _colors2.default.bgPrimary,
fontSize: "20px",
lineHeight: 28 / 20,
marginTop: "2px"
}
},
title
),
page === "previous" && _react2.default.createElement(
"div",
{ style: styles.fauxButton },
_react2.default.createElement(_icon.ArrowLeftAlternate, {
style: {
fontSize: "16px",
marginBottom: "-2px",
marginRight: "7px",
marginTop: "-4px"
}
}),
"Previous"
),
page === "next" && _react2.default.createElement(
"div",
{ style: styles.fauxButton },
"Next",
_react2.default.createElement(_icon.ArrowRightAlternate, {
style: {
fontSize: "16px",
marginBottom: "-2px",
marginLeft: "7px",
marginTop: "-4px"
}
})
)
),
_react2.default.createElement("img", {
style: styles.image,
src: image,
alt: imageAlt
})
);
};
ArticlePaginationItem.propTypes = {
title: _propTypes2.default.string.isRequired,
href: _propTypes2.default.string.isRequired,
image: _propTypes2.default.string.isRequired,
imageAlt: _propTypes2.default.string,
category: _propTypes2.default.string,
page: _propTypes2.default.oneOf(["previous", "next"]),
style: _propTypes2.default.objectOf(_propTypes2.default.object),
qaHook: _propTypes2.default.bool
};
exports.default = (0, _radium2.default)(ArticlePaginationItem);