UNPKG

react-admin-ui

Version:

A React Admin Panel based on material-ui design

210 lines (151 loc) 9.14 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _assign = require('babel-runtime/core-js/object/assign'); var _assign2 = _interopRequireDefault(_assign); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _dec, _class; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _Form = require('../../components/Entity/Form'); var _Form2 = _interopRequireDefault(_Form); var _utils = require('../../utils'); var _reactIsomorphicTools = require('react-isomorphic-tools'); var _reactRouterRedux = require('react-router-redux'); var _reactRedux = require('react-redux'); var _actions = require('../../actions'); var _Snackbar = require('../../actions/Snackbar'); var _immutable = require('immutable'); var _immutable2 = _interopRequireDefault(_immutable); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var CreatePage = (_dec = (0, _reactRedux.connect)(null, { push: _reactRouterRedux.push, open: _Snackbar.open, fetchToState: _reactIsomorphicTools.fetchToState }), _dec(_class = function (_React$Component) { (0, _inherits3.default)(CreatePage, _React$Component); function CreatePage(props) { (0, _classCallCheck3.default)(this, CreatePage); var _this = (0, _possibleConstructorReturn3.default)(this, (CreatePage.__proto__ || (0, _getPrototypeOf2.default)(CreatePage)).call(this, props)); _this.handleSubmit = function (form) { var _this$entity$actions$ = _this.entity.actions.create, wrapper = _this$entity$actions$.wrapper, url = _this$entity$actions$.url, _this$entity$actions$2 = _this$entity$actions$.params, params = _this$entity$actions$2 === undefined ? {} : _this$entity$actions$2, result = _this$entity$actions$.result; var _params = _immutable2.default.fromJS(wrapper ? (0, _assign2.default)(params, (0, _defineProperty3.default)({}, wrapper, form)) : (0, _assign2.default)(form, params)); if (typeof result == 'function') { _params = result(_params); } return (0, _reactIsomorphicTools.fetcher)(typeof url == 'function' ? url(_this.props.params, _this.props.location.query) : _this.entity.url, { params: _params, method: 'POST' }); }; _this.entity = (0, _utils.getEntity)(props.params.name); _this.handleSubmitSuccessAfterHook = _this.entity.actions.edit.onSubmitSuccessAfterHook; _this.handleSubmitSuccessBeforeHook = _this.entity.actions.edit.onSubmitSuccessBeforeHook; return _this; } (0, _createClass3.default)(CreatePage, [{ key: 'handleSubmitSuccess', value: function () { var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(result, dispatch, props) { var _entity$actions$creat, redirect, _props, _fetchToState, params, location, _push, _open; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; _entity$actions$creat = this.entity.actions.create.redirect, redirect = _entity$actions$creat === undefined ? 'list' : _entity$actions$creat; if (!this.handleSubmitSuccessBeforeHook) { _context.next = 5; break; } _context.next = 5; return this.handleSubmitSuccessBeforeHook(result, dispatch, props); case 5: _props = this.props, _fetchToState = _props.fetchToState, params = _props.params, location = _props.location, _push = _props.push, _open = _props.open; _open('default', 'Successfully created'); _context.next = 9; return (0, _actions.list)({ fetchToState: _fetchToState, params: params, location: location }); case 9: if (!result.id) redirect = 'list'; _context.t0 = redirect; _context.next = _context.t0 === 'list' ? 13 : _context.t0 === 'show' ? 15 : _context.t0 === 'edit' ? 17 : 19; break; case 13: _push('/' + (0, _utils.getPrefix)() + '/' + this.props.params.name); return _context.abrupt('break', 19); case 15: _push('/' + (0, _utils.getPrefix)() + '/' + this.props.params.name + '/show/' + result.id); return _context.abrupt('break', 19); case 17: _push('/' + (0, _utils.getPrefix)() + '/' + this.props.params.name + '/edit/' + result.id); return _context.abrupt('break', 19); case 19: _push('/' + (0, _utils.getPrefix)() + '/' + this.props.params.name); if (!this.handleSubmitSuccessAfterHook) { _context.next = 23; break; } _context.next = 23; return this.handleSubmitSuccessAfterHook(result, dispatch, props); case 23: _context.next = 28; break; case 25: _context.prev = 25; _context.t1 = _context['catch'](0); this.props.open('default', 'Error creating'); case 28: case 'end': return _context.stop(); } } }, _callee, this, [[0, 25]]); })); function handleSubmitSuccess(_x, _x2, _x3) { return _ref.apply(this, arguments); } return handleSubmitSuccess; }() }, { key: 'render', value: function render() { var _entity$actions$creat2 = this.entity.actions.create, _entity$actions$creat3 = _entity$actions$creat2.form, form = _entity$actions$creat3 === undefined ? this.props.params.name : _entity$actions$creat3, fields = _entity$actions$creat2.fields, Component = _entity$actions$creat2.component, onSubmitSuccess = _entity$actions$creat2.onSubmitSuccess, initialValues = _entity$actions$creat2.initialValues; return _react2.default.createElement( 'div', { className: 'block' }, Component ? _react2.default.createElement(Component, { form: form, onSubmit: this.handleSubmit, onSubmitSuccess: onSubmitSuccess || this.handleSubmitSuccess.bind(this), initialValues: initialValues || {}, entity: this.entity }) : _react2.default.createElement(_Form2.default, { form: form, fields: fields, onSubmit: this.handleSubmit, onSubmitSuccess: onSubmitSuccess || this.handleSubmitSuccess.bind(this), initialValues: initialValues || {}, entity: this.entity, label: 'Create' }) ); } }]); return CreatePage; }(_react2.default.Component)) || _class); exports.default = CreatePage;