UNPKG

sharyn

Version:

Combines all the other packages under one.

77 lines (63 loc) 2.62 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread")); var _isArray = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/is-array")); var _react = _interopRequireDefault(require("react")); var _reactRouterDom = require("react-router-dom"); var _cond = _interopRequireDefault(require("@sharyn/util/cond")); var _List = _interopRequireDefault(require("@material-ui/core/List")); var _DrawerItem = _interopRequireDefault(require("./DrawerItem")); var _propTypes = _interopRequireDefault(require("prop-types")); /* eslint-disable import/no-extraneous-dependencies */ // flow-disable-next-line var mergeNavItems = function mergeNavItems(navItemPairs) { return navItemPairs.map(function (i) { return (0, _isArray.default)(i) ? (0, _objectSpread2.default)({}, i[0], i[1]) : i; }); }; var NavList = function NavList(_ref) { var navItems = _ref.navItems; return _react.default.createElement(_List.default, null, mergeNavItems(navItems).map(function (_ref2) { var path = _ref2.path, label = _ref2.title, icon = _ref2.icon, hardLink = _ref2.hardLink, newTab = _ref2.newTab, Component = _ref2.component; return (0, _cond.default)([[Component, function () { return _react.default.createElement(Component, null); }], [hardLink || newTab, function () { return _react.default.createElement("a", (0, _extends2.default)({ href: path, key: path }, newTab ? { target: '_blank' } : {}), _react.default.createElement(_DrawerItem.default, { label: label, icon: icon })); }]], function () { return _react.default.createElement(_reactRouterDom.Link, { to: path, key: path }, _react.default.createElement(_DrawerItem.default, { label: label, icon: icon })); }); })); }; NavList.propTypes = { navItems: _propTypes.default.arrayOf(function (props, propName, componentName) { if (!Object.prototype.hasOwnProperty.call(props, propName)) { throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value.")); } }).isRequired }; var _default = NavList; exports.default = _default;