import * as Core from './coreTypes'; import React from 'react'; import Controller from './controller'; import Form from './form'; import { Wrap } from './wrapper'; export default function(register?) { return function(WrappedComponent: React.ComponentType) { return class extends React.Component & { controller: Core.FormController}> { controller: Core.FormController; validators: any; constructor(props) { super(props); this.controller = new Controller() this.validators = {}; if (register) { this.validators = register(validator(this.controller)) } } render() { return (
) } } } } export function validator(controller: Core.FormController) { return (wrappedComponent: React.ComponentType>, validator?: Core.ValidateFunc) => { return Wrap(controller, wrappedComponent, validator); } }