Skip to content

Instantly share code, notes, and snippets.

@JakeLaCombe
Created April 10, 2018 15:52
Show Gist options
  • Save JakeLaCombe/72600e54870dd845a150bea26e77093c to your computer and use it in GitHub Desktop.
Save JakeLaCombe/72600e54870dd845a150bea26e77093c to your computer and use it in GitHub Desktop.
# Example Adapter
```jsx
const TextFieldAdapter = ({ input, meta, placeholder, required, ...rest }) => (
<Field
{...rest}
error={meta.submitError}
isInvalid={meta.submitFailed}
required={required}
>
<Input
{...input}
placeholder={placeholder}
onChange={(e) => {input.onChange(e.target.value);}}
value={input.value}
/>
</Field>
);
```
# Example Validation function W/Usage
```jsx
const required = value => (value ? undefined : 'Required')
```
```jsx
renderForm({ handleSubmit, reset, submitting, pristine, values }) {
return (
<form
onSubmit={handleSubmit}
>
<h1>Hello People!</h1>
<Field
name="description"
validation={required}
>
{({ input, meta, placeholder, ...rest }) => (
<TerraField
{...rest}
label="Description"
error={meta.submitError}
isInvalid={meta.submitFailed}
required
>
<Input
{...input}
placeholder="Description"
onChange={(e) => {input.onChange(e.target.value);}}
value={input.value}
/>
</TerraField>
)}
</Field>
<button type="submit">
Submit
</button>
</form>
);
}
render() {
return (
<Form
onSubmit={this.submitForm}
render={this.renderForm}
validate={(values) => {
const errors = {};
if (!values.description) {
errors.description = "Required"
}
return errors;
}}
>
</Form>
);
}
```

Example Adapter

const TextFieldAdapter = ({ input, meta, placeholder, required, ...rest }) => (
  <Field
    {...rest}
    error={meta.submitError}
    isInvalid={meta.submitFailed}
    required={required}
  >
    <Input
      {...input}
      placeholder={placeholder}
      onChange={(e) => {input.onChange(e.target.value);}}
      value={input.value}
    />
  </Field>
);

Example Validation function W/Usage

const required = value => (value ? undefined : 'Required')
renderForm({ handleSubmit, reset, submitting, pristine, values }) {
    return (
      <form 
        onSubmit={handleSubmit}
      >
        <h1>Hello People!</h1>
        <Field
          name="description"
          validation={required}
        >
          {({ input, meta, placeholder, ...rest }) => (
            <TerraField
              {...rest}
              label="Description"
              error={meta.submitError}
              isInvalid={meta.submitFailed}
              required
            >
              <Input
                {...input}
                placeholder="Description"
                onChange={(e) => {input.onChange(e.target.value);}}
                value={input.value}
              />
            </TerraField>
          )}
        </Field>
        <button type="submit">
          Submit
        </button>
      </form>
    );
  }

  render() {
    return (
      <Form
        onSubmit={this.submitForm}
        render={this.renderForm}
        validate={(values) => {
          const errors = {};

          if (!values.description) {
            errors.description = "Required"
          }

          return errors;
        }}
        >
      </Form>
    );
  }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment