Welcome

Document react hook useForm Olapat

Example

Basic

Username
Password
Confirm Password

  import React, { useCallback } from 'react'
  import { useForm, Form } from '@olapat/react-useform'

  const Basic = () => {
    const form = useForm({
      initialValues: {
        username: '',
        password: '',
        repassword: ''
      },
      rules: {
        username: {
          required: true
        },
        password: {
          required: true,
          isAllowed: {
            func: (value) => /^(?=.*d)(?=.*([a-z]|[ก-๙]))(?=.*[A-Z])(?=.*[a-zA-Zก-๙]).{8,}/.test(value),
            msg: 'Password is not format'
          }
        },
        repassword: {
          required: true,
          isAllowed: {
            func: (value, values) => value === values.password,
            msg: 'Password is not match'
          }
        }
      }
    })

    const { values, handlerChange, errors } = form

    const handlerSubmit = useCallback((values) => {
      console.table(values);
    }, [])

    return (
      <Form form={form} handlerSubmit={handlerSubmit}>
        <fieldset>
          <legend>Username</legend>
          <input
            type='text'
            name='username'
            onChange={handlerChange}
            value={values.username}
          />
          <br />
          <span>{errors.username}</span>
        </fieldset>
        <fieldset>
          <legend>Password</legend>
          <input
            type='password'
            name='password'
            onChange={handlerChange}
            value={values.password}
          />
          <br />
          <span>{errors.password}</span>
        </fieldset>
        <fieldset>
          <legend>Confirm Password</legend>
          <input
            type='password'
            name='repassword'
            onChange={handlerChange}
            value={values.repassword}
          />
          <br />
          <span>{errors.repassword}</span>
        </fieldset>
        <button type='submit'>
          Submit
        </button>
      </Form>
    )
  }
  

Props

useForm

PropsOptionsDefaultDescription
initialValuesObject: {nameField: value}{}Default Values Form
rulesObject: Rules{}Default Rules Form
blackListString[][]Field names is set to disabled
whiteListString[][]Field names is set to enabled
onValuesUpdateFunction[]nullCallback on values form updated

Properties UseForm

PropsOptionsDefaultDescription
valuesObject{}Values form
handlerChangeFunction(event: ReactChangeEvent | string (name), value: any) => voidFunction to change values; handlerChange(event)
handlerChange(name, value)
errorsObject{}Errors form
submittingbooleanfalseis Form submitting
setValuesFunction(values: Object | (prevValues: Object) => NewValuesForm) => voidFunction to set values form
setRulesFunction(rules: Object | (prevRules: Object) => NewRulesForm) => voidFunction to set rules form
setErrorsFunction(errors: Object | (prevErrors: Object) => NewErrorsForm) => voidFunction to set errors form
handlerResetFunction(newValues: Object) => voidFunction to reset values

Rule

PropsOptionsDefaultDescription
requiredboolean | string{}rule set field is required
isAllowedObject: IsAllowednullrule set field is allowed value

Rule is Allowed

PropsOptionsDefaultDescription
funcFunction: (value, values) => booleannullFunction is checking value
msgString{}message on value not allowed