UNPKG

admin-on-rest-fr05t1k

Version:

A frontend Framework for building admin applications on top of REST services, using ES6, React and Material UI

97 lines (73 loc) 2.94 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _inflection = require('inflection'); var _inflection2 = _interopRequireDefault(_inflection); var _MenuItem = require('material-ui/MenuItem'); var _MenuItem2 = _interopRequireDefault(_MenuItem); var _reactRouterDom = require('react-router-dom'); var _pure = require('recompose/pure'); var _pure2 = _interopRequireDefault(_pure); var _compose = require('recompose/compose'); var _compose2 = _interopRequireDefault(_compose); var _DashboardMenuItem = require('./DashboardMenuItem'); var _DashboardMenuItem2 = _interopRequireDefault(_DashboardMenuItem); var _translate = require('../../i18n/translate'); var _translate2 = _interopRequireDefault(_translate); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var styles = { main: { display: 'flex', flexDirection: 'column', justifyContent: 'flex-start', height: '100%' } }; var translatedResourceName = function translatedResourceName(resource, translate) { return translate('resources.' + resource.name + '.name', { smart_count: 2, _: resource.options && resource.options.label ? translate(resource.options.label, { smart_count: 2, _: resource.options.label }) : _inflection2.default.humanize(_inflection2.default.pluralize(resource.name)) }); }; var Menu = function Menu(_ref) { var hasDashboard = _ref.hasDashboard, onMenuTap = _ref.onMenuTap, resources = _ref.resources, translate = _ref.translate, logout = _ref.logout; return _react2.default.createElement( 'div', { style: styles.main }, hasDashboard && _react2.default.createElement(_DashboardMenuItem2.default, { onTouchTap: onMenuTap }), resources.filter(function (r) { return r.list; }).map(function (resource) { return _react2.default.createElement(_MenuItem2.default, { key: resource.name, containerElement: _react2.default.createElement(_reactRouterDom.Link, { to: '/' + resource.name }), primaryText: translatedResourceName(resource, translate), leftIcon: _react2.default.createElement(resource.icon, null), onTouchTap: onMenuTap }); }), logout ); }; Menu.propTypes = { hasDashboard: _react.PropTypes.bool, logout: _react.PropTypes.element, onMenuTap: _react.PropTypes.func, resources: _react.PropTypes.array.isRequired, translate: _react.PropTypes.func.isRequired }; Menu.defaultProps = { onMenuTap: function onMenuTap() { return null; } }; var enhance = (0, _compose2.default)(_pure2.default, _translate2.default); exports.default = enhance(Menu); module.exports = exports['default'];