shradmin
Version:
A frontend Framework for building admin application, using antd and mirrorjs.
152 lines (116 loc) • 5.36 kB
JavaScript
;
exports.__esModule = true;
var _style2 = require('antd/lib/locale-provider/style');
var _localeProvider = require('antd/lib/locale-provider');
var _localeProvider2 = _interopRequireDefault(_localeProvider);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _mirrorx = require('mirrorx');
var _pages = require('./pages');
var _Routes = require('./Routes');
var _Routes2 = _interopRequireDefault(_Routes);
var _models = require('./models');
var _models2 = _interopRequireDefault(_models);
var _auth = require('./auth');
var _i18n = require('./i18n');
var _utils = require('./utils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
_models2.default.forEach(function (model) {
(0, _mirrorx.model)(model);
});
var Admin = function (_Component) {
_inherits(Admin, _Component);
function Admin() {
_classCallCheck(this, Admin);
return _possibleConstructorReturn(this, _Component.apply(this, arguments));
}
Admin.prototype.componentWillMount = function componentWillMount() {
var _props = this.props,
children = _props.children,
authClient = _props.authClient,
restClient = _props.restClient,
locale = _props.locale,
messages = _props.messages;
(0, _mirrorx.model)((0, _auth.getAuthModel)(authClient));
(0, _mirrorx.model)((0, _i18n.getI18nModel)(locale, messages));
_react2.default.Children.forEach(children, function (_ref) {
var props = _ref.props;
(0, _utils.registerResourceModel)(props.name, restClient);
});
(0, _mirrorx.render)();
};
Admin.prototype.render = function render() {
var _props2 = this.props,
locale = _props2.locale,
appLayout = _props2.appLayout,
title = _props2.title,
menu = _props2.menu,
dashboard = _props2.dashboard,
userMenu = _props2.userMenu,
appBar = _props2.appBar,
login = _props2.login,
children = _props2.children,
customRoutes = _props2.customRoutes;
var models = _react2.default.Children.map(children, function (_ref2) {
var props = _ref2.props;
return props;
}) || [];
return _react2.default.createElement(
_localeProvider2.default,
{ locale: _localeProvider2.default[locale] },
_react2.default.createElement(
_mirrorx.Router,
null,
_react2.default.createElement(
'div',
{ className: 'shradmin' },
_react2.default.createElement(
_mirrorx.Switch,
null,
_react2.default.createElement(_mirrorx.Route, { exact: true, path: '/login', component: login }),
_react2.default.createElement(_mirrorx.Route, { path: '/', render: function render() {
return _react2.default.createElement(appLayout || _pages.Layout, {
menu: _react2.default.createElement(menu || _pages.Menu, {
models: models
}),
userMenu: _react2.default.createElement(userMenu || _pages.UserMenu),
appBar: _react2.default.createElement(appBar || _pages.AppBar, {}),
routes: _react2.default.createElement(_Routes2.default, {
models: models,
dashboard: dashboard || _pages.Dashboard,
customRoutes: customRoutes
}),
title: title
});
} })
)
)
)
);
};
return Admin;
}(_react.Component);
Admin.defaultProps = {
locale: "zh",
messages: {},
title: "Shradmin",
login: _pages.Login
};
Admin.propTypes = process.env.NODE_ENV !== "production" ? {
appLayout: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),
authClient: _propTypes2.default.func.isRequired,
locale: _propTypes2.default.string,
messages: _propTypes2.default.object,
title: _propTypes2.default.node,
menu: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),
dashboard: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),
restClient: _propTypes2.default.func,
customRoutes: _propTypes2.default.array
} : {};
exports.default = Admin;
module.exports = exports['default'];