import React from 'react'; import ReactDOM from 'react-dom'; import { Form } from 'formsy-react'; import MyInput from './../components/Input'; import MySelect from './../components/Select'; import MyRadioGroup from './../components/RadioGroup'; import MyMultiCheckboxSet from './../components/MultiCheckboxSet'; const Fields = props => { function onRemove(pos) { return event => { event.preventDefault(); props.onRemove(pos); }; } const foo = 'required'; return (
{props.data.map((field, i) => (
{ field.type === 'input' ? ( ) : ( ) } X
)) }
); }; const App = React.createClass({ getInitialState() { return { fields: [], canSubmit: false }; }, submit(data) { alert(JSON.stringify(data, null, 4)); }, addField(fieldData) { fieldData.validations = fieldData.validations.length ? fieldData.validations.reduce((a, b) => Object.assign({}, a, b)) : null; fieldData.id = Date.now(); this.setState({ fields: this.state.fields.concat(fieldData) }); }, removeField(pos) { const fields = this.state.fields; this.setState({ fields: fields.slice(0, pos).concat(fields.slice(pos+1)) }) }, enableButton() { this.setState({ canSubmit: true }); }, disableButton() { this.setState({ canSubmit: false }); }, render() { const { fields, canSubmit } = this.state; return (
JSON.stringify(a) === JSON.stringify(b)} items={[ {isEmail: true}, {isEmptyString: true}, {isNumeric: true}, {isAlphanumeric: true}, {equals: 5}, {minLength: 3}, {maxLength: 7} ]} />
); } }); ReactDOM.render(, document.getElementById('example'));