define([ 'react', 'form/fields/text.jsx', 'form/fields/textarea.jsx', 'form/fields/select.jsx', 'form/fields/radio.jsx', 'form/fields/checkbox.jsx', 'form/fields/selection.jsx', 'form/fields/date.jsx', 'jquery', ], ( React, FormFieldText, FormFieldTextarea, FormFieldSelect, FormFieldRadio, FormFieldCheckbox, FormFieldSelection, FormFieldDate, jQuery ) => { const FormField = React.createClass({ renderField: function renderField(data, inline = false) { let description = false; if (data.field.description) { description = (

{ data.field.description }

); } let field = false; let dataField = data.field; if (data.field.field !== undefined) { dataField = jQuery.merge(dataField, data.field.field); } switch (dataField.type) { case 'text': field = (); break; case 'textarea': field = (); break; case 'select': field = (); break; case 'radio': field = (); break; case 'checkbox': field = (); break; case 'selection': field = (); break; case 'date': field = (); break; case 'reactComponent': field = (); break; default: field = 'invalid'; break; } if (inline === true) { return ( { field } { description } ); } return (
{ field } { description }
); }, render: function render() { let field = false; if (this.props.field.fields !== undefined) { field = this.props.field.fields.map((subfield, index) => this.renderField({ index, field: subfield, item: this.props.item, onValueChange: this.props.onValueChange || false, })); } else { field = this.renderField(this.props); } let tip = false; if (this.props.field.tip) { tip = (

{ this.props.field.tip }

); } return ( { field } ); }, }); return FormField; });