context-form
TypeScript icon, indicating that this package has built-in type declarations

1.2.5 • Public • Published

README

Form Management for React & React Native with a simple and flexible API.
Demo: https://youshido.github.io/context-form/demo/
Docs: https://youshido.github.io/context-form/

Thanks to the Context API (as of React 16.3) it is possible to write a library for the Form Management with a very clean and almost invisible API where you don't have to pass Form's props all over your project.

Main Features

  • Declarative API with no need for extra props passing
  • InitialValues as a simple prop to the <Form initialValues={} />
  • Controlled and Uncontrolled Form State
  • Field Arrays and Groups with custom JSX/Fields structure
  • Easy to implement Custom Controls
  • Support for the complex JSX structure inside the Form
  • Themes support — implement project-wide styling in a single file
  • Ready to go integrations with Bootstrap, Ant and Material UI
  • And it's simply a <Form /> that's fun to use :)

Installation

Add context-form package to your project using yarn or npm:

$ yarn add context-form (or npm i context-form)

Once you installed Context Form as a dependency you can try it out with this basic example of the uncontrolled form (note, it uses console to log the values submitted and does automatic field validation for a title field (required is just a shortcut for the more extensive rules props)

Once you installed Context Form as a dependency you can try it out with this basic example of the uncontrolled form (note, it uses console to log the values submitted and does automatic field validation for a title field (required is just a shortcut for the more extensive rules props):

import React, { Component } from 'react';
import Form, { Field, FormFooter } from 'context-form';
 
class ProductPage extends Component {
    /**
     * By default `onSubmit` will be called only if validation
     */
    onSubmit = ({ values }) => {
        console.log('Form Values', values);
    };
    render() {
        return (
            <Form onSubmit={this.onSubmit}>
                <Field name="firstName" />
                <Field name="lastName" />
                <Field name="title" required />
                // FormFooter is used just for layout purpose
                <FormFooter>
                    <button>Submit</button>
                </FormFooter>
            </Form>
        )
    }
}

You can now take a look at the more advances usage in the docs: https://youshido.github.io/context-form/

Readme

Keywords

Package Sidebar

Install

npm i context-form

Weekly Downloads

11

Version

1.2.5

License

MIT

Unpacked Size

442 kB

Total Files

9

Last publish

Collaborators

  • merksam
  • v.rumak
  • viniychuk
  • youshido_org