UNPKG

shradmin

Version:

A frontend Framework for building admin application, using antd and mirrorjs.

120 lines (93 loc) 2.95 kB
'use strict'; exports.__esModule = true; var _style3 = require('antd/lib/icon/style'); var _icon = require('antd/lib/icon'); var _icon2 = _interopRequireDefault(_icon); var _style4 = require('antd/lib/menu/style'); var _menu = require('antd/lib/menu'); var _menu2 = _interopRequireDefault(_menu); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _mirrorx = require('mirrorx'); var _compose = require('recompose/compose'); var _compose2 = _interopRequireDefault(_compose); var _split = require('lodash/split'); var _split2 = _interopRequireDefault(_split); var _i18n = require('../../i18n'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var MenuItem = _menu2.default.Item; var handleMenuClick = function handleMenuClick(_ref) { var key = _ref.key; switch (key) { case "home": _mirrorx.actions.routing.push("/"); break; case "logout": _mirrorx.actions.auth.logout(); break; default: _mirrorx.actions.routing.push('/' + key); break; } }; var AppMenu = function AppMenu(_ref2) { var models = _ref2.models, selectedKey = _ref2.selectedKey, translate = _ref2.translate; return _react2.default.createElement( _menu2.default, { mode: 'inline', onClick: handleMenuClick, defaultSelectedKeys: ["home"], selectedKeys: [selectedKey] }, _react2.default.createElement( MenuItem, { key: 'home' }, _react2.default.createElement(_icon2.default, { type: 'home' }), _react2.default.createElement( 'span', null, translate("page.home") ) ), models.map(function (_ref3) { var name = _ref3.name, icon = _ref3.icon; return _react2.default.createElement( MenuItem, { key: name }, _react2.default.createElement(icon), _react2.default.createElement( 'span', null, translate('models.' + name + '.name') ) ); }), _react2.default.createElement( MenuItem, { key: 'logout' }, _react2.default.createElement(_icon2.default, { type: 'logout' }), _react2.default.createElement( 'span', null, translate("auth.logout") ) ) ); }; AppMenu.propTypes = process.env.NODE_ENV !== "production" ? { models: _propTypes2.default.array } : {}; var getSelectedKey = function getSelectedKey(_ref4) { var pathname = _ref4.pathname; var keys = (0, _split2.default)(pathname, "/", 2); return keys[1] || "home"; }; var enhance = (0, _compose2.default)((0, _mirrorx.connect)(function (_ref5) { var location = _ref5.routing.location; return { selectedKey: getSelectedKey(location) }; }), _i18n.translate); exports.default = enhance(AppMenu); module.exports = exports['default'];