react-connect-form

0.7.1 • Public • Published

react-connect-form

Controlled forms for React.

Quick Links

Examples

Basic

import { Form, Field, Submit } from "react-connect-form"
 
const UserForm = () => (
  <Form onSubmit={console.log}>
    <Field
      name="first_name"
      type="text"
      placeholder="First name"
    />
    <Field
      name="last_name"
      type="text"
      placeholder="Last name"
    />
    <Field
      name="email"
      type="text"
      placeholder="Email"
    />
    <Submit>Submit</Submit>
  </Form>
)

Validation

import { Form, Field, Submit } from "react-connect-form"
import regex from 'regex-email'
 
function isEmail(value) {
  if (!regex.test(value)) {
    return "Please enter a valid email address"
  }
}
 
const EmailForm = () => (
  <Form onSubmit={console.log}>
    <Field
      name="email"
      type="text"
      placeholder="Email"
      validators={[isEmail]}
    />
    <Submit>Submit</Submit>
  </Form>
)

Async Validation

import { Form, Field, Submit, validators } from "react-connect-form"
const { isEmail } = validators
 
function isUniqueEmail(value) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      if (value === "robert@gmail.com") {
        reject("Email is already in use")
      } else {
        resolve()
      }
    }, 1000)
  })
}
 
const EmailForm = ({ handleSubmit }) => (
  <Form onSubmit={handleSubmit}>
    <Field
      name="email"
      type="text"
      placeholder="Email"
      validators={[isEmail, isUniqueEmail]}
    />
    <Submit>Submit</Submit>
  </Form>
)

Conditional Fields

Stepped Forms

Nested Forms

API

Components

<Form />

<Field />

<Submit />

Connectors

createForm

createField

withForm

Helpers

validators

Package Sidebar

Install

npm i react-connect-form

Weekly Downloads

6

Version

0.7.1

License

MIT

Unpacked Size

248 kB

Total Files

35

Last publish

Collaborators

  • robertgonzales