{:uriI"�file:///Users/joel/src/revelry_core/app/assets/javascripts/revelry/ui/forms/ModelForm/ModelForm.js.cjsx?type=application/javascript&pipeline=self&id=f8cf3b70bf2977d1c380bd009c371d8684afce4d8f2b36826a360bed46520b47:ET:load_pathI"8/Users/joel/src/revelry_core/app/assets/javascripts;F:
filenameI"e/Users/joel/src/revelry_core/app/assets/javascripts/revelry/ui/forms/ModelForm/ModelForm.js.cjsx;T:	nameI")revelry/ui/forms/ModelForm/ModelForm;T:logical_pathI"1revelry/ui/forms/ModelForm/ModelForm.self.js;T:content_typeI"application/javascript;T:sourceI"N(function() {
  Rev.pullInto(this)('Form');

  Rev.registerComponent('ModelForm', {
    mixins: [Backbone.Events, Rev.Mixins.BackboneStore],
    propTypes: {
      model: React.PropTypes.object.isRequired
    },
    getInitialState: function() {
      var state;
      return state = {
        errors: null
      };
    },
    render: function() {
      return React.createElement(Form, {
        "method": "POST",
        "onSubmit": this.onSubmit,
        "action": this.formAction(),
        "className": this.props.className,
        "encType": "multipart/form-data"
      }, this.props.children);
    },
    formAction: function() {
      if (this.props.action != null) {
        return this.props.action;
      }
      return this.props.model.url();
    },
    formMethod: function() {
      if (this.props.method != null) {
        return this.props.method;
      }
      if (this.props.model != null) {
        if (this.props.model.isNew()) {
          return 'POST';
        } else {
          return 'PATCH';
        }
      }
      return 'POST';
    },
    componentDidMount: function() {
      return this.listenTo(this.props.model, 'error', this.onError);
    },
    componentDidUnmount: function() {
      return this.stopListening(this.props.model);
    },
    onError: function(model, resp, options) {
      return this.setState({
        errors: resp.responseJSON.errors
      });
    },
    onSubmit: function(e) {
      e.preventDefault();
      return this.props.model.save(null, {
        success: this.props.onSuccess,
        error: this.props.onError
      });
    }
  });

}).call(this);
;T:
metadata{:dependencieso:Set:
@hash{	I"environment-version;TTI"environment-paths;TTI"hprocessors:type=application/javascript&file_type=application/javascript&engines=.cjsx&pipeline=self;TTI"sfile-digest:///Users/joel/src/revelry_core/app/assets/javascripts/revelry/ui/forms/ModelForm/ModelForm.js.cjsx;TT:
requiredo;;{�:stubbedo;;{�:
linkso;;{�:charsetI"
utf-8;F:digest"%��M����Ny.>;�q�ҕ�r(�+���%m:lengthiN:integrityI"Xni:///sha-256;8xv3Tfu-1f1OGHkuPjsUyXGx0pXJcgcoB8QrpoaTJW0?ct=application/javascript;T:dependencies_digest"%Ya��҆#�-?��9��ux�{@�g�n�u��K:idI"Ef8cf3b70bf2977d1c380bd009c371d8684afce4d8f2b36826a360bed46520b47;F:
mtimel+��1U