@formulaik/react

1.6.0 • Public • Published

Formulaik React JS Engine

NPM JavaScript Style Guide

Documentation

Formulaik's documentation is available here

Install

npm install --save @formulaik/react

Usage

  1. Install formulaik, yup for validation and a component library
npm install yup @formulaik-community/react-mui
import Formulaik from '@formulaik/react'
import FormulaikMui from '@formulaik-community/react-mui'
import * as Yup from 'yup'
  1. Define inputs
const inputs = [
  {
    type: 'input',
    schema: 'email',
    id: 'email',
    label: 'Email',
    params: {
      type: 'email',
      placeholder: "email@domain.com"
    }
  },
  {
    type: 'inputPassword',
    schema: 'password',
    label: 'Password',
    id: 'password',
    params: {
      type: 'password',
      autoComplete: "current-password",
      placeholder: "xxxx-xxxx-xxxx"
    }
  },
  {
    type: 'submit',
    params: {
      text: 'Continue'
    }
  },
]
  1. Provide initial values
const initialValues = {
    email: cookies.get('email'),
}
  1. Define validation
const validationSchema = Yup.object().shape({
  email: Yup.string()
    .email('Invalid email format')
    .required("This field can't be blank"),
  password: Yup.string()
    .required("This field can't be blank")
    .min(7, 'Must contain at least 8 characters')
    .max(18, 'Must contain at most 18 characters')
    .matches(/[a-zA-Z]/, 'Password can only contain Latin letters.')
})
  1. Render forms and handle submit
export default (props) => {
  const onSubmit = async (values, { setSubmitting }) => {
    try {
      const { email, password } = values
      //... do login
      setError(null)
    } catch (e) {
      console.log(e)
      setError(e)
    }

    setSubmitting(false)
  }

  return <div>
      <h1>Login</h1>
      <Formulaik
        componentsLibraries={[FormulaikLocal,]}
        initialValues={initialValues}
        validationSchema={validationSchema}
        inputs={inputs}
        onSubmit={onSubmit}
        error={error} />
    </div>
}

License

MIT © yelounak

Readme

Keywords

Package Sidebar

Install

npm i @formulaik/react

Weekly Downloads

2

Version

1.6.0

License

ISC

Unpacked Size

6.18 MB

Total Files

21

Last publish

Collaborators

  • yelounak