npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-web-form

v0.1.6

Published

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

Downloads

5

Readme

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

| Props | Description | required | | ------------- |:-------------:| -----:| | id | same key will be used to identify the input field when the form will be submitted.| true | |required | if input filed is required deuring submit | false | |defaultValue | value which will be initially set | false | |errorClass | css style className which will be apllied to input element when the field is invalid | false | | label | to display a label on top of input | false | | invalidText | text to display when the field is invalid | false | | emptyText |text to display when the field is empty | false | | validate | function to validate if the field is invalid or not | false | | HeaderComponent | a react component to display on top of input element | false | | FooterComponent | a react component to display at bottom of input element and it will receive an error in props; | false | | onChange | function will be called on every change and it will receive an (id, value) as params | false | | all other input props | all the props which are passed to an input element | false |

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

| Props | Description | required | | ------------- |:-------------:| -----:| | id | same key will be used to identify the input field when the form will be submitted.| true | |required | if input filed is required deuring submit | false | |defaultValue | value which will be initially selected | false | |errorClass | css style className which will be apllied to input element when the field is invalid | false | | label | to display a label on top of input | false | | invalidText | text to display when the field is invalid | false | | emptyText |text to display when the field is empty | false | | validate | function to validate if the field is invalid or not | false | | HeaderComponent | a react component to display on top of input element | false | | FooterComponent | a react component to display at bottom of input element and it will receive an error in props; | false | | onChange | function will be called on every change and it will receive an (id, value) as params | false | | all other select props | all the props which are passed to an select input element | false |

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

| Props | Description | required | | ------------- |:-------------:| -----:| | id | same key will be used to identify the input field when the form will be submitted.| true | |required | if input filed is required deuring submit | false | |defaultValue | value which will be initially set | false | |errorClass | css style className which will be apllied to input element when the field is invalid | false | | label | to display a label on top of input | false | | invalidText | text to display when the field is invalid | false | | emptyText |text to display when the field is empty | false | | validate | function to validate if the field is invalid or not | false | | HeaderComponent | a react component to display on top of input element | false | | FooterComponent | a react component to display at bottom of input element and it will receive an error in props; | false | | onChange | function will be called on every change and it will receive an (id, value) as params | false | | all other input props | all the props which are passed to an <textarea/> input element | false |

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

| Props | Description | required | | ------------- |:-------------:| -----:| | id | same key will be used to identify the input field when the form will be submitted.| true | |required | if input filed is required deuring submit | false | |defaultValue | value which will be initially selected in case of radio , and an array of values which will be selected in case of checkbox | false | | label | to display a label on top of input | false | | invalidText | text to display when the field is invalid | false | | emptyText |text to display when the field is empty | false | | validate | function to validate if the field is invalid or not | false | | HeaderComponent | a react component to display on top of input element | false | | FooterComponent | a react component to display at bottom of input element and it will receive an error in props; | false | | onChange | function will be called on every change and it will receive an (id, value) as params | false |

InputManager.Radio ----- Props

| Props | Description | required | | ------------- |:-------------:| -----:| | name | required to make the only a single radio input to be selected in a group| true | | value | value to be updtated when form is submitted | true | | radio input props | all other props available on a <input type="radio"/> element | false |

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

| Props | Description | required | | ------------- |:-------------:| -----:| | id | same key will be used to identify the input field when the form will be submitted.| true | |required | if input filed is required deuring submit | false | |defaultValue | value which will be initially selected in case of radio , and an array of values which will be selected in case of checkbox | false | | label | to display a label on top of input | false | | invalidText | text to display when the field is invalid | false | | emptyText |text to display when the field is empty | false | | validate | function to validate if the field is invalid or not | false | | HeaderComponent | a react component to display on top of input element | false | | FooterComponent | a react component to display at bottom of input element and it will receive an error in props; | false | | onChange | function will be called on every change and it will receive an (id, value) as params | false |

InputManager.CheckBox ----- Props

| Props | Description | required | | ------------- |:-------------:| -----:| | name | required to make a group of selected elements| true | | value | value to be updtated when form is submitted | true | | other input props | all other props available on a <input type="checkbox"/> element | false |

FormManager ---- props

| Props | Description | required | | ------------- |:-------------:| -----:| | onSubmit | function which will be called when the form is submitted and none of the field is invalid| true | |all other form props | all the other <form/> props can be passed | false |