0.1.6 • Published 4 years ago

react-web-form v0.1.6

Weekly downloads
31
License
-
Repository
github
Last release
4 years ago

react-web-form

Why?

Great performant optimization. it will only re-render that input element which needs to be updated.

Installation

npm i react-web-form

yarn add react-web-form

Usage

1. TextInput

import React, { memo } from 'react';
import {InputManager, FormManager} from 'react-web-form'
import './App.css';


function App() {

  const onSubmit = (data,resetForm) => {
    console.log({data});
    resetForm();
  }
  const isInvalidName = (val) => val.trim().length < 3;
  return (
    <div className="App">
      <div className="app-conatiner">
              <FormManager onSubmit={onSubmit}>
                    <InputManager.Text
                    id="name"  
                    required 
                    className="input-text"
                    type="text"
                    label="Name" 
                    invalidText="name is invalid"
                    emptyText="Name is required"
                    validate={isInvalidName}
                    />
                    <button type="submit">SUbmit</button>
              </FormManager>
       </div>
     </div>
  );
}

export default App;

InputManager.Text ----- Props

PropsDescriptionrequired
idsame key will be used to identify the input field when the form will be submitted.true
requiredif input filed is required deuring submitfalse
defaultValuevalue which will be initially setfalse
errorClasscss style className which will be apllied to input element when the field is invalidfalse
labelto display a label on top of inputfalse
invalidTexttext to display when the field is invalidfalse
emptyTexttext to display when the field is emptyfalse
validatefunction to validate if the field is invalid or notfalse
HeaderComponenta react component to display on top of input elementfalse
FooterComponenta react component to display at bottom of input element and it will receive an error in props;false
onChangefunction will be called on every change and it will receive an (id, value) as paramsfalse
all other input propsall the props which are passed to an input elementfalse

2. SelectInput

import React, { memo } from 'react';
import {InputManager, FormManager} from 'react-web-form'
import './App.css';


function App() {

  const onSubmit = (data,resetForm) => {
    console.log({data});
    resetForm();
  }
  const isInvalidAnimal = (val) => val.trim().length < 3;
  return (
    <div className="App">
      <div className="app-conatiner">
              <FormManager onSubmit={onSubmit}>
                   <InputManager.Select 
                    id="animal"
                    required 
                    className="input-text"
                    validate={isInvalidAnimal}
                    emptyText="Animal is required" 
                    placeholder="Select Animal"
                    >
                        <option value="dog">Dog</option>
                        <option value="cat">Cat</option>
                        <option value="hamster">Hamster</option>
                        <option value="parrot">Parrot</option>
                    </InputManager.Select>
                    <button type="submit">SUbmit</button>
                </FormManager>
       </div>
     </div>
  );
}

export default App;

InputManager.Select ----- Props

PropsDescriptionrequired
idsame key will be used to identify the input field when the form will be submitted.true
requiredif input filed is required deuring submitfalse
defaultValuevalue which will be initially selectedfalse
errorClasscss style className which will be apllied to input element when the field is invalidfalse
labelto display a label on top of inputfalse
invalidTexttext to display when the field is invalidfalse
emptyTexttext to display when the field is emptyfalse
validatefunction to validate if the field is invalid or notfalse
HeaderComponenta react component to display on top of input elementfalse
FooterComponenta react component to display at bottom of input element and it will receive an error in props;false
onChangefunction will be called on every change and it will receive an (id, value) as paramsfalse
all other select propsall the props which are passed to an select input elementfalse

3. TextArea

import React, { memo } from 'react';
import {InputManager, FormManager} from 'react-web-form'
import './App.css';


function App() {

  const onSubmit = (data,resetForm) => {
    console.log({data});
    resetForm();
  }
  const isInvalidName = (val) => val.trim().length < 3;
  return (
    <div className="App">
      <div className="app-conatiner">
              <FormManager onSubmit={onSubmit}>
                    <InputManager.TeaxtArea
                    id="name"  
                    required 
                    className="input-text"
                    type="text"
                    label="Name" 
                    invalidText="name is invalid"
                    emptyText="Name is required"
                    validate={isInvalidName}
                    />
                    <button type="submit">Submit</button>
              </FormManager>
       </div>
     </div>
  );
}

export default App;

InputManager.TextArea ----- Props

PropsDescriptionrequired
idsame key will be used to identify the input field when the form will be submitted.true
requiredif input filed is required deuring submitfalse
defaultValuevalue which will be initially setfalse
errorClasscss style className which will be apllied to input element when the field is invalidfalse
labelto display a label on top of inputfalse
invalidTexttext to display when the field is invalidfalse
emptyTexttext to display when the field is emptyfalse
validatefunction to validate if the field is invalid or notfalse
HeaderComponenta react component to display on top of input elementfalse
FooterComponenta react component to display at bottom of input element and it will receive an error in props;false
onChangefunction will be called on every change and it will receive an (id, value) as paramsfalse
all other input propsall the props which are passed to an <textarea/> input elementfalse

4. RadioInput

import React, { memo } from 'react';
import {InputManager, FormManager} from 'react-web-form'
import './App.css';


function App() {

  const onSubmit = (data,resetForm) => {
    console.log({data});
    resetForm();
  }
  const isInvalidAnimal = (val) => val.trim().length < 3;
  return (
    <div className="App">
      <div className="app-conatiner">
              <FormManager onSubmit={onSubmit}>
                   <InputManager.Group 
                   id="hobby"
                   required  
                   label="Hobbies --------" 
                   emptyText="hobby required"
                   >
        
                            <div>
                            <InputManager.Radio name="hobby" value="Marketing" />
                            <span>Marketing</span>
                            </div>
                    
                            <div>
                            <InputManager.Radio name="hobby" value="Fishing" />
                            <span>Fishing</span>
                            </div>
                    
                            <div>
                            <InputManager.Radio name="hobby" value="hawking" />
                            <span>hawking</span>
                            </div>
                    
                            <div>
                            <InputManager.Radio name="hobby" value="bashing" />
                            <span>bashing</span>
                            </div>
                  </InputManager.Group>
                    <button type="submit">Submit</button>
                </FormManager>
       </div>
     </div>
  );
}

export default App;

InputManager.Group ----- Props

PropsDescriptionrequired
idsame key will be used to identify the input field when the form will be submitted.true
requiredif input filed is required deuring submitfalse
defaultValuevalue which will be initially selected in case of radio , and an array of values which will be selected in case of checkboxfalse
labelto display a label on top of inputfalse
invalidTexttext to display when the field is invalidfalse
emptyTexttext to display when the field is emptyfalse
validatefunction to validate if the field is invalid or notfalse
HeaderComponenta react component to display on top of input elementfalse
FooterComponenta react component to display at bottom of input element and it will receive an error in props;false
onChangefunction will be called on every change and it will receive an (id, value) as paramsfalse

InputManager.Radio ----- Props

PropsDescriptionrequired
namerequired to make the only a single radio input to be selected in a grouptrue
valuevalue to be updtated when form is submittedtrue
radio input propsall other props available on a <input type="radio"/> elementfalse

5. CheckBox

import React, { memo } from 'react';
import {InputManager, FormManager} from 'react-web-form'
import './App.css';


function App() {

  const onSubmit = (data,resetForm) => {
    console.log({data});
    resetForm();
  }
  const isInvalidAnimal = (val) => val.trim().length < 3;
  return (
    <div className="App">
      <div className="app-conatiner">
              <FormManager onSubmit={onSubmit}>
                   <InputManager.Group  
                   id="Hobbies"
                   label="Hobbies --------" 
                   required 
                   emptyText="hobby required"
                   >
        
                                <div>
                                <InputManager.CheckBox name="items" value="Marketing" />
                                <span>Marketing</span>
                                </div>
                        
                                <div>
                                <InputManager.CheckBox name="items" value="Fishing" />
                                <span>Fishing</span>
                                </div>
                        
                                <div>
                                <InputManager.CheckBox name="items" value="hawking" />
                                <span>hawking</span>
                                </div>
                        
                                <div>
                                <InputManager.CheckBox name="items" value="bashing" />
                                <span>bashing</span>
                                </div>

                    </InputManager.Group>
                    <button type="submit">Submit</button>
                </FormManager>
       </div>
     </div>
  );
}

export default App;

InputManager.Group ----- Props

PropsDescriptionrequired
idsame key will be used to identify the input field when the form will be submitted.true
requiredif input filed is required deuring submitfalse
defaultValuevalue which will be initially selected in case of radio , and an array of values which will be selected in case of checkboxfalse
labelto display a label on top of inputfalse
invalidTexttext to display when the field is invalidfalse
emptyTexttext to display when the field is emptyfalse
validatefunction to validate if the field is invalid or notfalse
HeaderComponenta react component to display on top of input elementfalse
FooterComponenta react component to display at bottom of input element and it will receive an error in props;false
onChangefunction will be called on every change and it will receive an (id, value) as paramsfalse

InputManager.CheckBox ----- Props

PropsDescriptionrequired
namerequired to make a group of selected elementstrue
valuevalue to be updtated when form is submittedtrue
other input propsall other props available on a <input type="checkbox"/> elementfalse

FormManager ---- props

PropsDescriptionrequired
onSubmitfunction which will be called when the form is submitted and none of the field is invalidtrue
all other form propsall the other <form/> props can be passedfalse