UNPKG

wix-style-react

Version:
118 lines (99 loc) 4.67 kB
import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; import _createClass from "@babel/runtime/helpers/createClass"; import _inherits from "@babel/runtime/helpers/inherits"; import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn"; import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(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; } } import React from 'react'; import { SidePanelContext } from '../SidePanelAPI'; import PropTypes from 'prop-types'; import { st, classes } from './Header.st.css'; import { dataHooks } from '../constants'; import Heading from '../../Heading'; import Divider from '../../Divider'; import CloseButton from '../../CloseButton'; import Box from '../../Box'; import InfoIcon from '../../InfoIcon'; import { TooltipCommonProps } from '../../common/PropTypes/TooltipCommon'; var Header = /*#__PURE__*/function (_React$PureComponent) { _inherits(Header, _React$PureComponent); var _super = _createSuper(Header); function Header() { _classCallCheck(this, Header); return _super.apply(this, arguments); } _createClass(Header, [{ key: "renderStringTitle", value: function renderStringTitle() { var _this$props = this.props, title = _this$props.title, infoTooltipContent = _this$props.infoTooltipContent, infoTooltipProps = _this$props.infoTooltipProps; return /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(Heading, { appearance: "H4", dataHook: dataHooks.sidePanelHeaderTitle }, title), infoTooltipContent && /*#__PURE__*/React.createElement(Box, { marginLeft: "tiny" }, /*#__PURE__*/React.createElement(InfoIcon, { dataHook: dataHooks.sidePanelHeaderTitleInfoIcon, content: infoTooltipContent, tooltipProps: infoTooltipProps }))); } }, { key: "renderTitle", value: function renderTitle(onCloseButtonClick) { var title = this.props.title; var isStringTitle = typeof title === 'string'; return /*#__PURE__*/React.createElement("div", { className: classes.titleContainer }, /*#__PURE__*/React.createElement("div", { className: classes.title }, isStringTitle ? this.renderStringTitle() : title), /*#__PURE__*/React.createElement(CloseButton, { dataHook: dataHooks.sidePanelHeaderCloseButton, className: classes.closeButton, size: "large", onClick: onCloseButtonClick })); } }, { key: "render", value: function render() { var _this = this; var _this$props2 = this.props, children = _this$props2.children, showDivider = _this$props2.showDivider, className = _this$props2.className; return /*#__PURE__*/React.createElement(SidePanelContext.Consumer, null, function (context) { return /*#__PURE__*/React.createElement("div", { className: st(classes.root, className), "data-hook": dataHooks.sidePanelHeader }, _this.renderTitle(context.onCloseButtonClick), children, showDivider && /*#__PURE__*/React.createElement(Divider, { dataHook: dataHooks.sidePanelHeaderDivider })); }); } }]); return Header; }(React.PureComponent); _defineProperty(Header, "displayName", 'SidePanel.Header'); _defineProperty(Header, "propTypes", { /** Define styles through a classname */ className: PropTypes.string, /** Title */ title: PropTypes.node, /** Tooltip content */ infoTooltipContent: PropTypes.node, /** Tooltip props */ infoTooltipProps: PropTypes.shape(TooltipCommonProps), /** Show divider */ showDivider: PropTypes.bool, /** Any element to be rendered inside under title */ children: PropTypes.node }); _defineProperty(Header, "defaultProps", { showDivider: true }); export default Header;