UNPKG

2.71 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9
10var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends"));
11
12var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread"));
13
14var _isArray = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/is-array"));
15
16var _react = _interopRequireDefault(require("react"));
17
18var _reactRouterDom = require("react-router-dom");
19
20var _cond = _interopRequireDefault(require("@sharyn/util/cond"));
21
22var _List = _interopRequireDefault(require("@material-ui/core/List"));
23
24var _DrawerItem = _interopRequireDefault(require("./DrawerItem"));
25
26var _propTypes = _interopRequireDefault(require("prop-types"));
27
28/* eslint-disable import/no-extraneous-dependencies */
29// flow-disable-next-line
30var mergeNavItems = function mergeNavItems(navItemPairs) {
31 return navItemPairs.map(function (i) {
32 return (0, _isArray.default)(i) ? (0, _objectSpread2.default)({}, i[0], i[1]) : i;
33 });
34};
35
36var NavList = function NavList(_ref) {
37 var navItems = _ref.navItems;
38 return _react.default.createElement(_List.default, null, mergeNavItems(navItems).map(function (_ref2, index) {
39 var path = _ref2.path,
40 label = _ref2.title,
41 icon = _ref2.icon,
42 hardLink = _ref2.hardLink,
43 newTab = _ref2.newTab,
44 Component = _ref2.component;
45 return (0, _cond.default)([// eslint-disable-next-line react/no-array-index-key
46 [Component, function () {
47 return _react.default.createElement(Component, {
48 key: index
49 });
50 }], [hardLink || newTab, function () {
51 return _react.default.createElement("a", (0, _extends2.default)({
52 href: path,
53 key: path
54 }, newTab ? {
55 target: '_blank'
56 } : {}), _react.default.createElement(_DrawerItem.default, {
57 label: label,
58 icon: icon
59 }));
60 }]], function () {
61 return _react.default.createElement(_reactRouterDom.Link, {
62 to: path,
63 key: path
64 }, _react.default.createElement(_DrawerItem.default, {
65 label: label,
66 icon: icon
67 }));
68 });
69 }));
70};
71
72NavList.propTypes = {
73 navItems: _propTypes.default.arrayOf(function (props, propName, componentName) {
74 if (!Object.prototype.hasOwnProperty.call(props, propName)) {
75 throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
76 }
77 }).isRequired
78};
79var _default = NavList;
80exports.default = _default;
\No newline at end of file