retail-ui icon indicating copy to clipboard operation
retail-ui copied to clipboard

[react-ui-validations] Добавить HOC withValidation IF-635

Open nanot1m opened this issue 7 years ago • 4 comments

Использовать инстанс контейнера для валидации не очень удобно, и это не react-way.

Предлагаю запилить высокоуровневую компоненту withValidation, со следующим интерфейсом

withValidation(ReactClass<P>): ReactClass<$Diff<P, {onValidate: ValidationHandler}>>

где

type ValidationHandler = () => Promise<boolean>

Тогда мы сможем делать такое

@withValidation
class FormEditor extends Component {
  render() {
    return (
      <Form>
        {/* какие-то поля с валидациями */}
        <Button onClick={this.props.onValidate}>Validate</Button>
      </Form>
    )
  }
}

// или без декоратор
export default withValidation(FormEditor)

nanot1m avatar Mar 23 '17 11:03 nanot1m

Если что, я могу взяться за эту фичу

nanot1m avatar Mar 23 '17 11:03 nanot1m

Хм. Выглядит круто.

tihonove avatar Mar 24 '17 03:03 tihonove

Я конечно, не против. Если начну сам делать -- напишу.

tihonove avatar Mar 24 '17 03:03 tihonove

Кажись что-то такое уже сделано в файлике ControlsWithValidations, правда только в доке и беда с типизацией

wKich avatar Mar 14 '19 13:03 wKich