wix-style-react
Version:
wix-style-react
128 lines (102 loc) • 3.34 kB
JavaScript
'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;