UNPKG

wix-style-react

Version:
192 lines (162 loc) • 10.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _Heading = _interopRequireDefault(require("../../Heading")); var _Text = _interopRequireDefault(require("../../Text")); var _TextButton = _interopRequireDefault(require("../../TextButton")); var _CloseButton = _interopRequireDefault(require("../../CloseButton")); var _Button = _interopRequireDefault(require("../../Button")); var _MessageBoxMarketerialLayout = _interopRequireDefault(require("../../../es/src/MessageBox/MarketerialLayout/MessageBoxMarketerialLayout.scss")); var _deprecationLog = _interopRequireDefault(require("../../utils/deprecationLog")); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var buttonSkinByTheme = { blue: 'standard', purple: 'premium', white: 'dark' }; var MessageBoxMarketerialLayout = /*#__PURE__*/function (_React$PureComponent) { (0, _inherits2["default"])(MessageBoxMarketerialLayout, _React$PureComponent); var _super = _createSuper(MessageBoxMarketerialLayout); function MessageBoxMarketerialLayout(props) { var _this; (0, _classCallCheck2["default"])(this, MessageBoxMarketerialLayout); _this = _super.call(this, props); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_renderButtons", function () { var _this$props = _this.props, primaryButtonLabel = _this$props.primaryButtonLabel, primaryButtonTheme = _this$props.primaryButtonTheme, primaryButtonNode = _this$props.primaryButtonNode, theme = _this$props.theme, onPrimaryButtonClick = _this$props.onPrimaryButtonClick, primaryButtonDisabled = _this$props.primaryButtonDisabled, secondaryButtonLabel = _this$props.secondaryButtonLabel, footerBottomChildren = _this$props.footerBottomChildren, onSecondaryButtonClick = _this$props.onSecondaryButtonClick; return /*#__PURE__*/_react["default"].createElement("div", { className: _MessageBoxMarketerialLayout["default"].buttonsContainer }, !!primaryButtonNode && /*#__PURE__*/_react["default"].createElement("div", { "data-hook": "primary-button-node" }, primaryButtonNode), !primaryButtonNode && primaryButtonLabel && /*#__PURE__*/_react["default"].createElement(_Button["default"], { skin: buttonSkinByTheme[primaryButtonTheme || theme], priority: !primaryButtonTheme && theme === 'white' ? 'secondary' : 'primary', onClick: onPrimaryButtonClick, dataHook: "primary-button", disabled: primaryButtonDisabled }, primaryButtonLabel), secondaryButtonLabel && !footerBottomChildren && /*#__PURE__*/_react["default"].createElement("div", { className: _MessageBoxMarketerialLayout["default"].secondaryButtonContainer }, /*#__PURE__*/_react["default"].createElement(_TextButton["default"], { size: "small", onClick: onSecondaryButtonClick, dataHook: "secondary-button" }, secondaryButtonLabel))); }); (0, _deprecationLog["default"])('<MessageBoxMarketerialLayout/> - Component is deprecated and will be removed as part of the next major version, please use <AnnouncementModalLayout /> instead.'); return _this; } (0, _createClass2["default"])(MessageBoxMarketerialLayout, [{ key: "render", value: function render() { var _classNames; var _this$props2 = this.props, dataHook = _this$props2.dataHook, title = _this$props2.title, content = _this$props2.content, primaryButtonLabel = _this$props2.primaryButtonLabel, secondaryButtonLabel = _this$props2.secondaryButtonLabel, imageUrl = _this$props2.imageUrl, onClose = _this$props2.onClose, theme = _this$props2.theme, imageComponent = _this$props2.imageComponent, footerBottomChildren = _this$props2.footerBottomChildren, removeButtonsPadding = _this$props2.removeButtonsPadding, width = _this$props2.width, noBodyPadding = _this$props2.noBodyPadding; var headerClasses = (0, _classnames["default"])((_classNames = {}, (0, _defineProperty2["default"])(_classNames, _MessageBoxMarketerialLayout["default"].headerBase, true), (0, _defineProperty2["default"])(_classNames, _MessageBoxMarketerialLayout["default"].header, !!imageComponent || !!imageUrl), (0, _defineProperty2["default"])(_classNames, _MessageBoxMarketerialLayout["default"]["header-".concat(theme)], true), _classNames)); // instead of introducing a breaking change for padding removal for non buttons existence, we add this prop var shouldRemoveButtonsPadding = removeButtonsPadding && !primaryButtonLabel && !secondaryButtonLabel; var shouldDisplayBodyPadding = !noBodyPadding; return /*#__PURE__*/_react["default"].createElement("div", { className: _MessageBoxMarketerialLayout["default"].root, style: { width: width }, "data-hook": dataHook }, /*#__PURE__*/_react["default"].createElement("div", { className: headerClasses }, /*#__PURE__*/_react["default"].createElement("div", { className: _MessageBoxMarketerialLayout["default"].close }, /*#__PURE__*/_react["default"].createElement(_CloseButton["default"], { dataHook: "close-button", size: "medium", onClick: onClose, skin: theme === 'white' ? 'dark' : 'lightFilled' })), imageComponent ? /*#__PURE__*/_react["default"].createElement("div", { className: _MessageBoxMarketerialLayout["default"].headerImageComponent }, imageComponent) : imageUrl ? /*#__PURE__*/_react["default"].createElement("div", { className: _MessageBoxMarketerialLayout["default"].headerImage }, /*#__PURE__*/_react["default"].createElement("img", { src: imageUrl, "data-hook": "header-image" })) : null), /*#__PURE__*/_react["default"].createElement("div", { className: (0, _classnames["default"])(_MessageBoxMarketerialLayout["default"].title, (0, _defineProperty2["default"])({}, _MessageBoxMarketerialLayout["default"].bodyPadding, shouldDisplayBodyPadding)), "data-hook": "message-box-title" }, /*#__PURE__*/_react["default"].createElement(_Heading["default"], { appearance: "H1" }, title)), /*#__PURE__*/_react["default"].createElement("div", { className: (0, _classnames["default"])(_MessageBoxMarketerialLayout["default"].content, (0, _defineProperty2["default"])({}, _MessageBoxMarketerialLayout["default"].bodyPadding, shouldDisplayBodyPadding)) }, /*#__PURE__*/_react["default"].createElement(_Text["default"], { size: "medium", weight: "thin" }, content)), shouldRemoveButtonsPadding ? /*#__PURE__*/_react["default"].createElement("div", { className: _MessageBoxMarketerialLayout["default"].emptyButtonsContainer }) : this._renderButtons(), footerBottomChildren ? /*#__PURE__*/_react["default"].createElement("div", { "data-hook": "footer-layout-bottom-children", className: _MessageBoxMarketerialLayout["default"].bottomChildren, children: footerBottomChildren }) : null); } }]); return MessageBoxMarketerialLayout; }(_react["default"].PureComponent); MessageBoxMarketerialLayout.propTypes = { /** applied as data-hook HTML attribute that can be used to create driver in testing */ dataHook: _propTypes["default"].string, title: _propTypes["default"].node.isRequired, content: _propTypes["default"].node.isRequired, primaryButtonLabel: _propTypes["default"].string, primaryButtonDisabled: _propTypes["default"].bool, primaryButtonNode: _propTypes["default"].node, secondaryButtonLabel: _propTypes["default"].string, onPrimaryButtonClick: _propTypes["default"].func, onSecondaryButtonClick: _propTypes["default"].func, imageUrl: _propTypes["default"].string, onClose: _propTypes["default"].func.isRequired, imageComponent: _propTypes["default"].node, footerBottomChildren: _propTypes["default"].node, theme: _propTypes["default"].oneOf(['blue', 'purple', 'white']), primaryButtonTheme: _propTypes["default"].oneOf(['blue', 'purple']), removeButtonsPadding: _propTypes["default"].bool, width: _propTypes["default"].string, noBodyPadding: _propTypes["default"].bool }; MessageBoxMarketerialLayout.defaultProps = { theme: 'blue', removeButtonsPadding: false, width: '600px', noBodyPadding: false }; var _default = MessageBoxMarketerialLayout; exports["default"] = _default;