admin-on-rest-fr05t1k
Version:
A frontend Framework for building admin applications on top of REST services, using ES6, React and Material UI
144 lines (110 loc) • 4.92 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TabbedForm = undefined;
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 _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reduxForm = require('redux-form');
var _reactRedux = require('react-redux');
var _compose = require('recompose/compose');
var _compose2 = _interopRequireDefault(_compose);
var _Tabs = require('material-ui/Tabs');
var _Toolbar = require('./Toolbar');
var _Toolbar2 = _interopRequireDefault(_Toolbar);
var _getDefaultValues = require('./getDefaultValues');
var _getDefaultValues2 = _interopRequireDefault(_getDefaultValues);
var _translate = require('../../i18n/translate');
var _translate2 = _interopRequireDefault(_translate);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var TabbedForm = exports.TabbedForm = function (_Component) {
(0, _inherits3.default)(TabbedForm, _Component);
function TabbedForm(props) {
(0, _classCallCheck3.default)(this, TabbedForm);
var _this = (0, _possibleConstructorReturn3.default)(this, (TabbedForm.__proto__ || Object.getPrototypeOf(TabbedForm)).call(this, props));
_this.handleChange = function (value) {
_this.setState({ value: value });
};
_this.state = {
value: 0
};
return _this;
}
(0, _createClass3.default)(TabbedForm, [{
key: 'render',
value: function render() {
var _props = this.props,
children = _props.children,
contentContainerStyle = _props.contentContainerStyle,
handleSubmit = _props.handleSubmit,
invalid = _props.invalid,
record = _props.record,
resource = _props.resource,
basePath = _props.basePath,
translate = _props.translate;
return _react2.default.createElement(
'form',
{ onSubmit: handleSubmit, className: 'tabbed-form' },
_react2.default.createElement(
'div',
{ style: { padding: '0 1em 1em 1em' } },
_react2.default.createElement(
_Tabs.Tabs,
{
value: this.state.value,
onChange: this.handleChange,
contentContainerStyle: contentContainerStyle
},
_react2.default.Children.map(children, function (tab, index) {
return _react2.default.createElement(
_Tabs.Tab,
{
key: tab.props.value,
className: 'form-tab',
label: translate(tab.props.label),
value: index,
icon: tab.props.icon
},
_react2.default.cloneElement(tab, { resource: resource, record: record, basePath: basePath })
);
})
)
),
_react2.default.createElement(_Toolbar2.default, { invalid: invalid })
);
}
}]);
return TabbedForm;
}(_react.Component);
TabbedForm.propTypes = {
children: _react.PropTypes.node,
contentContainerStyle: _react.PropTypes.object,
defaultValue: _react.PropTypes.oneOfType([_react.PropTypes.object, _react.PropTypes.func]),
handleSubmit: _react.PropTypes.func,
invalid: _react.PropTypes.bool,
record: _react.PropTypes.object,
resource: _react.PropTypes.string,
basePath: _react.PropTypes.string,
translate: _react.PropTypes.func,
validation: _react.PropTypes.func
};
TabbedForm.defaultProps = {
contentContainerStyle: { borderTop: 'solid 1px #e0e0e0' }
};
var enhance = (0, _compose2.default)((0, _reactRedux.connect)(function (state, props) {
return {
initialValues: (0, _getDefaultValues2.default)(state, props)
};
}), (0, _reduxForm.reduxForm)({
form: 'record-form',
enableReinitialize: true
}), _translate2.default);
exports.default = enhance(TabbedForm);