UNPKG

wix-style-react

Version:
157 lines (126 loc) • 6.56 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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _Text = _interopRequireDefault(require("../Text")); var _Button = _interopRequireDefault(require("../Button")); var _CloseButton = _interopRequireDefault(require("../CloseButton")); var _constants = require("./constants"); var _SectionHelperSt = require("./SectionHelper.st.css"); var _context = require("../FontUpgrade/context"); 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; } } /** * Used in pages where you need to explain or mention things about the content or actions */ var SectionHelper = /*#__PURE__*/function (_React$PureComponent) { (0, _inherits2["default"])(SectionHelper, _React$PureComponent); var _super = _createSuper(SectionHelper); function SectionHelper() { (0, _classCallCheck2["default"])(this, SectionHelper); return _super.apply(this, arguments); } (0, _createClass2["default"])(SectionHelper, [{ key: "render", value: function render() { var _this$props = this.props, dataHook = _this$props.dataHook, showCloseButton = _this$props.showCloseButton, onClose = _this$props.onClose, onAction = _this$props.onAction, actionText = _this$props.actionText, appearance = _this$props.appearance, title = _this$props.title, size = _this$props.size, fullWidth = _this$props.fullWidth, children = _this$props.children; var isExperimentalDark = appearance === _constants.Appearance.ExperimentalDark; return /*#__PURE__*/_react["default"].createElement("div", { "data-hook": dataHook, "data-appearance": appearance, className: (0, _SectionHelperSt.st)(_SectionHelperSt.classes.root, { appearance: appearance, withCloseBtn: showCloseButton && !!onClose, withTitle: !!title, fullWidth: fullWidth, size: size }) }, showCloseButton && onClose && /*#__PURE__*/_react["default"].createElement("div", { className: (0, _SectionHelperSt.st)(_SectionHelperSt.classes.close, { size: size }) }, /*#__PURE__*/_react["default"].createElement(_CloseButton["default"], { dataHook: "sectionhelper-close-btn", size: "medium", skin: isExperimentalDark ? 'light' : 'dark', onClick: onClose })), title && /*#__PURE__*/_react["default"].createElement("div", { className: _SectionHelperSt.classes.title }, /*#__PURE__*/_react["default"].createElement(_context.FontUpgradeContext.Consumer, null, function (_ref) { var active = _ref.active; return /*#__PURE__*/_react["default"].createElement(_Text["default"], { light: isExperimentalDark, dataHook: "sectionhelper-title", size: "small", weight: active ? 'bold' : 'normal' }, title); })), /*#__PURE__*/_react["default"].createElement("div", { className: _SectionHelperSt.classes.content }, /*#__PURE__*/_react["default"].createElement(_Text["default"], { size: "small", light: isExperimentalDark }, children)), onAction && actionText && /*#__PURE__*/_react["default"].createElement("div", { className: (0, _SectionHelperSt.st)(_SectionHelperSt.classes.action, { size: size }) }, /*#__PURE__*/_react["default"].createElement(_Button["default"], { size: size === 'small' ? 'tiny' : 'small', skin: isExperimentalDark ? 'standard' : 'dark', priority: isExperimentalDark ? 'primary' : 'secondary', onClick: onAction, dataHook: "sectionhelper-action-btn" }, actionText))); } }]); return SectionHelper; }(_react["default"].PureComponent); SectionHelper.displayName = 'SectionHelper'; SectionHelper.propTypes = { /** Applied as data-hook HTML attribute that can be used in the tests */ dataHook: _propTypes["default"].string, /** Sets the look and feel of the component */ appearance: _propTypes["default"].oneOf(['warning', 'standard', 'danger', 'success', 'premium', 'preview', 'experimentalDark']), /** Adds text as the title */ title: _propTypes["default"].node, /** Controls the component padding*/ size: _propTypes["default"].oneOf(['small', 'medium']), /** decide if to show the close button */ showCloseButton: _propTypes["default"].bool, /** When provided, will make a close button appear and invoke it upon click */ onClose: _propTypes["default"].func, /** When provided, will make an action button appear and invoke it upon click */ onAction: _propTypes["default"].func, /** Text label for the action button */ actionText: _propTypes["default"].string, /** Children to render */ children: _propTypes["default"].node, /** Set the content width to 100% */ fullWidth: _propTypes["default"].bool }; SectionHelper.defaultProps = { showCloseButton: true, appearance: 'warning', fullWidth: false, size: 'medium' }; var _default = SectionHelper; exports["default"] = _default;