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 validationErrors = { 'isEmail': 'The field must contain a valid email address', 'isNumeric': 'The field must contain only numbers', 'isAlphanumeric': 'The field must only contain alpha-numeric characters', 'equals': 'The field must be equal to {0}', 'minLength': 'The field must be at least {0} characters in length', 'maxLength': 'The field must not exceed {0} characters in length' }; 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}, {isNumeric: true}, {isAlphanumeric: true}, {equals: 5}, {minLength: 3}, {maxLength: 7} ]} />
); } }); ReactDOM.render(, document.getElementById('example'));