Skip to content

Instantly share code, notes, and snippets.

@isnifer
Last active November 24, 2015 10:51
Show Gist options
  • Save isnifer/cb9e3610518ba1431945 to your computer and use it in GitHub Desktop.
Save isnifer/cb9e3610518ba1431945 to your computer and use it in GitHub Desktop.
Concept of Foma future-version API example

Инстанс должен иметь не только список в виде массива невалидных полей, но и объект, где каждое поле представлено объектов, там есть:

  • fieldName
  • хэндлеры для редактирования состояния
  • список ошибок
  • текст подсказки
  • в каждом поле можно перезаписать тип валидации
import React, { Component } from 'react';
import { render } from 'react/lib/ReactDOM';
import Foma from 'foma';

const fields = {
    username: {
        validators: [standardValidator, asyncValidator, oneMoreValidator],
        tip: 'имя пользователя'
    },
    password: {
        validators: [passwordValidator],
        tip: 'пароль'
    },
    browser: {
        validators: [standardValidator],
        handler: () => { alert('Укажите валидатор') },
        tip: 'ваш любимый браузер'
    }
};

@Foma(fields)
class FormDemo extends Component {
	render () {
		const { fields } = this.props;
		
    	return (
    		<form name="FormDemo" noValidate>
    	    	<div className="form-group">
                    <label htmlFor="username">Type your username</label>
                    <input
                        type="text"
                        className="form-control"
                        {...fields.username} />
                </div>
    	    </form>
    	);
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment