shradmin
Version:
A frontend Framework for building admin application, using antd and mirrorjs.
120 lines (93 loc) • 2.95 kB
JavaScript
'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'];