UNPKG

react-cm-ui

Version:
105 lines (88 loc) 3.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classnames = _interopRequireDefault(require("classnames")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _constants = require("../../global/constants"); var _makeStyles = _interopRequireDefault(require("../../styles/makeStyles")); var _utils = _interopRequireDefault(require("../../utils/utils")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var propTypes = { as: _propTypes["default"].oneOf(['div', 'header', 'main', 'section']), children: _propTypes["default"].node, className: _propTypes["default"].string, /** * Used for DOM testing. https://testing-library.com/docs/queries/bytestid/ */ dataTestId: _propTypes["default"].string, id: _propTypes["default"].string, isFiltersRailOpen: _propTypes["default"].bool, scrollable: _propTypes["default"].bool, style: _propTypes["default"].shape({}) }; var defaultProps = { as: 'section', children: null, className: null, dataTestId: "".concat(_constants.UI_CLASS_NAME, "-drawer_content"), id: null, isFiltersRailOpen: false, scrollable: false, style: null }; var useStyles = (0, _makeStyles["default"])(function (theme) { var _root; var breakpoints = theme.breakpoints; return { root: (_root = { padding: '33px 22px', position: 'relative', transition: 'margin 200ms ease-out', zIndex: 0, '&.drawer--content-filters_rail_open': { marginLeft: 250 }, '&.drawer--content-scrollable': { overflowX: 'scroll' } }, _defineProperty(_root, breakpoints.down('md'), { transition: 'margin-top 333ms ease-in-out', '&.drawer--content-has_action_bar_mobile_search_visible': { marginTop: 55 } }), _defineProperty(_root, breakpoints.up('md'), { padding: '33px 22px' }), _root) }; }); function DrawerContent(props) { var _ClassNames; var as = props.as, children = props.children, className = props.className, dataTestId = props.dataTestId, id = props.id, isFiltersRailOpen = props.isFiltersRailOpen, scrollable = props.scrollable, style = props.style; var classes = useStyles(props); var winWidth = window.innerWidth; var isMobile = winWidth <= 767; var bemName = 'drawer--content'; var rootClasses = (0, _classnames["default"])('ui', classes.root, bemName, className, (_ClassNames = {}, _defineProperty(_ClassNames, "".concat(bemName, "-filters_rail_open"), !isMobile && isFiltersRailOpen), _defineProperty(_ClassNames, "".concat(bemName, "-scrollable"), scrollable), _ClassNames)); var ElementType = _utils["default"].getElementType(as, props); return /*#__PURE__*/_react["default"].createElement(ElementType, { className: rootClasses, "data-testid": dataTestId, id: id, style: style }, children); } DrawerContent.propTypes = propTypes; DrawerContent.defaultProps = defaultProps; var _default = DrawerContent; exports["default"] = _default;