UNPKG

wix-style-react

Version:
128 lines (102 loc) 3.34 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _index = require('./index'); var _index2 = _interopRequireDefault(_index); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _DrillView = require('./DrillView.scss'); var _DrillView2 = _interopRequireDefault(_DrillView); var _navigation = require('../core/navigation'); var _navigation2 = _interopRequireDefault(_navigation); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _Link = require('../core/navigation/Link'); var _Link2 = _interopRequireDefault(_Link); var _BackLink = require('../core/navigation/BackLink'); var _BackLink2 = _interopRequireDefault(_BackLink); var _Category = require('../core/navigation/Category'); var _Category2 = _interopRequireDefault(_Category); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var SubMenu = function SubMenu(_ref) { var children = _ref.children, title = _ref.title, isOpen = _ref.isOpen, isActive = _ref.isActive, onSelectHandler = _ref.onSelectHandler, onBackHandler = _ref.onBackHandler, backLabel = _ref.backLabel, showCategory = _ref.showCategory, badge = _ref.badge, linkDataHook = _ref.linkDataHook, disabled = _ref.disabled; if (!isOpen) { return _react2.default.createElement( _Link2.default, { isActive: isActive, onClick: onSelectHandler, badge: badge, withArrow: !badge, 'data-hook': linkDataHook, disabled: disabled }, title ); } var wrappedNavigation = _react.Children.map(children, function (child) { if (child.type === _index2.default.Navigation) { return _react2.default.createElement( 'div', { className: _DrillView2.default.openSubMenu }, _react2.default.createElement( _BackLink2.default, { onBackHandler: onBackHandler }, backLabel ), showCategory && _react2.default.createElement( _Category2.default, null, title ), _react2.default.createElement( _navigation2.default, null, child.props.children ) ); } return child; }); return _react2.default.createElement( 'div', { className: _DrillView2.default.subMenu, 'data-hook': 'menu-drill-sub-menu' }, wrappedNavigation ); }; SubMenu.defaultProps = { isActive: false, isOpen: false, onSelectHandler: function onSelectHandler() {}, onBackHandler: function onBackHandler() {}, backLabel: 'Back', showCategory: true, linkDataHook: 'menu-drill-sub-menu-link', disabled: false }; SubMenu.propTypes = { menuKey: _propTypes2.default.string.isRequired, title: _propTypes2.default.node.isRequired, isActive: _propTypes2.default.bool, isOpen: _propTypes2.default.bool, onSelectHandler: _propTypes2.default.func, onBackHandler: _propTypes2.default.func, backLabel: _propTypes2.default.node, showCategory: _propTypes2.default.bool, badge: _propTypes2.default.node, linkDataHook: _propTypes2.default.string, children: _propTypes2.default.node.isRequired, disabled: _propTypes2.default.bool }; exports.default = SubMenu;