0.2.11 • Published 8 months ago

@olapat/react-useform v0.2.11

Weekly downloads
-
License
ISC
Repository
github
Last release
8 months ago

React UseForm

The react hook useform controller

📦 Install

npm i @olapat/react-useform

Basic

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={(event) => handlerChange(event.target.name, event.target.value)}
          value={values.username}
        />
        <br />
        <span>{errors.username}</span>
      </fieldset>
      <fieldset>
        <legend>Password</legend>
        <input
          type='password'
          name='password'
          onChange={(event) => handlerChange(event.target.name, event.target.value)}
          value={values.password}
        />
        <br />
        <span>{errors.password}</span>
      </fieldset>
      <fieldset>
        <legend>Confirm Password</legend>
        <input
          type='password'
          name='repassword'
          onChange={(event) => handlerChange(event.target.name, event.target.value)}
          value={values.repassword}
        />
        <br />
        <span>{errors.repassword}</span>
      </fieldset>
      <button type='submit'>
        Submit
      </button>
    </Form>
  )
}

Props

UseForm

PropsOptionsRequiredDescription
initialValuesObject: {key: string: any}trueSet Initial Values Form
rulesObject: RulestrueSet Initial Rules Form
blackListString[]falseField names is set to disabled
whiteListString[]falseField names is set to enabled
onValuesUpdateFunctionnullCallback on values form updated

Controller UseForm

PropsOptionsDescription
valuesObjectValues form
handlerChange(string: name, value: any) => voidFunction to change values
errorsObjectErrors form
setValues(newValues: Object) => voidFunction to set values form
setRules(newRules: Object) => voidFunction to set rules form
setErrors(newErrors: Object) => voidFunction to set errors form
handlerReset(newInitValues: Object) => voidFunction to reset values

Rules

PropsOptionsDescription
requiredboolean or string (Message on invalid)Rule set field to required
isAllowedObject: IsAllowedRule set field to allow value

IsAllowed

PropsOptionsDescription
func(value, values) => booleanFunction is checking value
msgStringMessage on value not allowed

License

Copyright (c) 2021-present Olapat. See LICENSE for details.

0.2.11

8 months ago

0.2.10

9 months ago

0.2.9

1 year ago

0.2.8

1 year ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.0

2 years ago