0.2.0 • Published 5 years ago

react-validation-handler v0.2.0

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

React-Validator-Handler

This React package is for validate separated form fields using namespaces.

npm license npm npm Build Status

Getting Started

npm

npm i react-validation-handler

yarn

yarn add react-validation-handler

Usage

basic :

//Form1 component
import React from 'react';
import ErrorHandler from 'react-validation-handler'

...
let input1 = '';
...
  // <ErrorHandler /> accept `rules` attribute by default has an object {required: true}
  // `namespace` and `id` attributes are required so `react-validation-handler` can track that specific instance
  // `body` attribute hold content component ( in our example it's a <input />)
  <ErrorHandler
    value={input1}
    namespace="form1"
    id="form1Input1"
    body={({updateValue}) => {
      return (
        <input onChange={e => {
          input1 = e.target.value;
          // updateValue to track var changes
          updateValue(input1);
        }}/> 
      )
    }}
  />
...

//AppComponent

import Form1 from '/path/to/Form1';
import { ErrorHooks } from 'react-validation-handler'

...
  <Form1 />

  <button onClick={ _ => {
    // validate method to check if all fields under a specific `namespace` are good
    ErrorHooks.validate('form1').then( (hasErros, errors) => {
      // hasError : Boolean
      // errors: has object with all `id`s of fields that has error
    });
  }}>validate form1</button>
...

validate a target field

...
  <Form1 />

  <button onClick={ _ => {
    // check method to check if the specified field meet rules requirements
    ErrorHooks.check('form1Input1').then( (hasError, errors) => {
      // hasError : Boolean
      // errors: has `id` of fields that has error
    });
  }}>validate form1Input1</button>
...

ErrorHandler

propertyrequireddefaultdescription
bodytrue-component body //input, textarea, ...
namespacetrue-to identify field group name
valuetrue-current field value
idtrue-current field id
rulesfalse{required: true}rules for current field (only number, email are available for now)

Rules

ruletypedefaultdescriptionStatus
requiredBooleantrueset field to requiredDONE
emailBooleanfalseset field as email, it should be a valid emailDONE
charBooleanfalseset field as string, it's only valid valid names {/^A-Za-z-' +$/}DONE
numberBooleanfalseset field as number, it should be a valid numberDONE
equalToString''set field to equal another ErrorHandler Field ID "DONE
patternobject{}object with two keys regex to test the entred value and message to be displayed in case errorDONE
minNumber-1field value length should be greater or equal to min valueDONE
maxNumber-1field value length should be less or equal to min valueDONE