@lote-design-system/marketing-blocks
Version:
117 lines (100 loc) • 4.13 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Cta2 = void 0;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _core = require("@lote-design-system/core");
// => Dependent styled-components
// Our main component depends upon the following styled-components
var CtaContent = _styledComponents["default"].div.withConfig({
displayName: "Cta2__CtaContent",
componentId: "sc-120b1c6-0"
})(["background:", ";color:#fff;padding:48px 64px;text-align:center;"], function (_ref) {
var theme = _ref.theme;
return theme.palettes.primary[4];
});
var CtaText = _styledComponents["default"].h1.withConfig({
displayName: "Cta2__CtaText",
componentId: "sc-120b1c6-1"
})(["font-size:24px;font-weight:400;max-width:400px;margin:18px auto;color:#fff;"]);
var CtaDescription = _styledComponents["default"].p.withConfig({
displayName: "Cta2__CtaDescription",
componentId: "sc-120b1c6-2"
})(["font-size:16px;max-width:460px;margin:18px auto;color:#fff;"]);
var CtaButton = (0, _styledComponents["default"])(_core.Button).withConfig({
displayName: "Cta2__CtaButton",
componentId: "sc-120b1c6-3"
})(["padding:16px 56px;font-size:14px;font-weight:600;margin:8px;display:block;width:100%;", "{display:inline-block;width:auto;}"], function (_ref2) {
var theme = _ref2.theme;
return theme.mediaQueries.sm;
}); // <= End Dependent styled-components
var linkShape = {
id: _propTypes["default"].number.isRequired,
href: _propTypes["default"].string.isRequired,
text: _propTypes["default"].string.isRequired,
variation: _propTypes["default"].string.isRequired,
color: _propTypes["default"].string
};
var linkSchema = [{
id: 1,
href: '/',
text: 'Join us',
variation: 'primarySubtle'
}, {
id: 2,
href: '/',
text: 'Buy now',
variation: 'white'
}];
var propTypes = {
/** The Main text for the Cta. */
text: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]).isRequired,
/** Description for the Cta. */
description: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]).isRequired,
/** Links appear on the Cta. */
links: _propTypes["default"].arrayOf(_propTypes["default"].shape(linkShape))
};
var defaultProps = {
text: 'Purchase Stack now and get lifetime',
description: 'Each purchase of Stack comes with six months free support — and a lifetime of free content and bug-fix updates.',
links: linkSchema
};
/**
* Render Links for the Cta
* @param data {Array} - Links schema for the Cta
* @return {null|*} - Returns the JSX or null
*/
var renderLinks = function renderLinks(data) {
if (Array.isArray(data) && data.length > 0) {
return /*#__PURE__*/_react["default"].createElement("div", null, data.map(function (_ref3) {
var id = _ref3.id,
href = _ref3.href,
text = _ref3.text,
variation = _ref3.variation,
color = _ref3.color;
return /*#__PURE__*/_react["default"].createElement(CtaButton, {
key: id,
href: href,
variation: variation,
color: color
}, text);
}));
} else {
return null;
}
};
var Cta2 = function Cta2(props) {
var text = props.text,
description = props.description,
links = props.links,
attributes = (0, _objectWithoutProperties2["default"])(props, ["text", "description", "links"]);
return /*#__PURE__*/_react["default"].createElement(CtaContent, attributes, text ? /*#__PURE__*/_react["default"].createElement(CtaText, null, text) : null, description ? /*#__PURE__*/_react["default"].createElement(CtaDescription, null, description) : null, renderLinks(links));
};
exports.Cta2 = Cta2;
Cta2.propTypes = propTypes;
Cta2.defaultProps = defaultProps;