UNPKG

@panneau/layout

Version:
90 lines (75 loc) 3.14 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _get = _interopRequireDefault(require("lodash/get")); var _core = require("@panneau/core"); var _NavbarLink = _interopRequireDefault(require("./NavbarLink")); var _NavbarDivider = _interopRequireDefault(require("./NavbarDivider")); var _excluded = ["items", "position", "className", "onClickItem"]; var propTypes = { link: _propTypes["default"].string, label: _core.PropTypes.label, items: _propTypes["default"].arrayOf(_propTypes["default"].shape({ type: _propTypes["default"].string, label: _core.PropTypes.label })), position: _propTypes["default"].oneOf(['left', 'center', 'right']), className: _propTypes["default"].string, onClick: _propTypes["default"].func, onClickItem: _propTypes["default"].func }; var defaultProps = { link: null, label: null, items: null, position: 'left', className: null, onClick: null, onClickItem: null }; var NavbarItem = function NavbarItem(_ref) { var items = _ref.items, position = _ref.position, className = _ref.className, onClickItem = _ref.onClickItem, linkProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded); var hasDropdown = items !== null && items.length > 0; return /*#__PURE__*/_react["default"].createElement("li", { className: (0, _classnames["default"])(['nav-item', (0, _defineProperty2["default"])({ dropdown: hasDropdown }, className, className !== null)]) }, /*#__PURE__*/_react["default"].createElement(_NavbarLink["default"], (0, _extends2["default"])({}, linkProps, { hasDropdown: hasDropdown })), hasDropdown ? /*#__PURE__*/_react["default"].createElement("div", { className: (0, _classnames["default"])(['dropdown-menu', { 'dropdown-menu-right': position === 'right' }]) }, items.map(function (it, index) { return (0, _get["default"])(it, 'type', 'item') === 'divider' ? /*#__PURE__*/_react["default"].createElement(_NavbarDivider["default"], { key: "item-".concat(index), isDropdown: true }) : /*#__PURE__*/_react["default"].createElement(_NavbarLink["default"], (0, _extends2["default"])({ key: "item-".concat(index) }, it, { isDropdown: true, onClick: function onClick(e) { if (onClickItem !== null) { onClickItem(e, it, index); } } })); })) : null); }; NavbarItem.propTypes = propTypes; NavbarItem.defaultProps = defaultProps; var _default = NavbarItem; exports["default"] = _default;