UNPKG

shradmin

Version:

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

54 lines (42 loc) 2.01 kB
'use strict'; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _mirrorx = require('mirrorx'); var _auth = require('./auth'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var ModelRoute = function ModelRoute(_ref) { var name = _ref.name, list = _ref.list, create = _ref.create, edit = _ref.edit, show = _ref.show, hasDelete = _ref.hasDelete; var AuthorizationComponent = function AuthorizationComponent(component, route, model) { return function (routeProps) { return _react2.default.createElement( _auth.Authorization, null, _react2.default.createElement(component, _extends({ model: model, hasList: !!list, hasEdit: !!edit, hasCreate: !!create, hasShow: !!show, hasDelete: hasDelete }, routeProps)) ); }; }; return _react2.default.createElement( _mirrorx.Switch, null, list && _react2.default.createElement(_mirrorx.Route, { exact: true, path: '/' + name, render: AuthorizationComponent(list, "list", name) }), show && _react2.default.createElement(_mirrorx.Route, { exact: true, path: '/' + name + '/:id/show', render: AuthorizationComponent(show, "show", name) }), create && _react2.default.createElement(_mirrorx.Route, { exact: true, path: '/' + name + '/create', render: AuthorizationComponent(create, "create", name) }), edit && _react2.default.createElement(_mirrorx.Route, { exact: true, path: '/' + name + '/:id', render: AuthorizationComponent(edit, "edit", name) }) ); }; exports.default = ModelRoute; module.exports = exports['default'];