sharyn
Version:
Combines all the other packages under one.
77 lines (63 loc) • 2.62 kB
JavaScript
;
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;