UNPKG

wix-style-react

Version:
97 lines (89 loc) 2.53 kB
import SideMenuDrill from './index'; import React, { Children } from 'react'; import styles from './DrillView.scss'; import Navigation from '../core/navigation'; import PropTypes from 'prop-types'; import NavigationLink from '../core/navigation/Link'; import NavigationBackLink from '../core/navigation/BackLink'; import NavigationCategory from '../core/navigation/Category'; 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 React.createElement( NavigationLink, { isActive: isActive, onClick: onSelectHandler, badge: badge, withArrow: !badge, 'data-hook': linkDataHook, disabled: disabled }, title ); } var wrappedNavigation = Children.map(children, function (child) { if (child.type === SideMenuDrill.Navigation) { return React.createElement( 'div', { className: styles.openSubMenu }, React.createElement( NavigationBackLink, { onBackHandler: onBackHandler }, backLabel ), showCategory && React.createElement( NavigationCategory, null, title ), React.createElement( Navigation, null, child.props.children ) ); } return child; }); return React.createElement( 'div', { className: styles.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: PropTypes.string.isRequired, title: PropTypes.node.isRequired, isActive: PropTypes.bool, isOpen: PropTypes.bool, onSelectHandler: PropTypes.func, onBackHandler: PropTypes.func, backLabel: PropTypes.node, showCategory: PropTypes.bool, badge: PropTypes.node, linkDataHook: PropTypes.string, children: PropTypes.node.isRequired, disabled: PropTypes.bool }; export default SubMenu;