UNPKG

@lote-design-system/marketing-blocks

Version:
117 lines (100 loc) 4.13 kB
"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;