Socket
Socket
Sign inDemoInstall

react-formalize

Package Overview
Dependencies
24
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    react-formalize

Serialize react forms


Version published
Weekly downloads
119
increased by9.17%
Maintainers
1
Install size
183 kB
Created
Weekly downloads
 

Readme

Source

react-formalize

npm npm version npm downloads

  • serialize forms with react
  • pass defaults to form or input
  • easy two-way data binding
  • validation messages
  • works great with flux, redux and friends
  • fully customizable

Demos

Table of Contents

Installation

npm install react-formalize --save

Usage

import { Component } from 'react';
import { Form, Text, Select } from 'react-formalize';

export default class MyForm extends Component {

    handleSubmit(values) {
        console.info('Submit', values);
        // {
        //    title: 'Lorem ipsum dolor ist',
        //    category: 'news'
        // };
    }

    render() {
        const post = {
            title: 'Lorem ipsum dolor ist',
            category: 'news'
        };

        return (
            <Form
                values={post}               
                onSubmit={this.handleSubmit}
                onChange={this.handleChange}>
                <div>
                    <label>Title</label>
                    <Text
                        name="title"
                        placeholder="Enter title"/>
                </div>
                <div>
                    <label>Category</label>
                    <Select
                        name="category"   
                        placeholder="Choose category..."
                        options={{news: 'News', sport: 'Sport'}}/>
                </div>
                <div>
                    <button type="submit">Submit</button>
                </div>
            </Form>
        );
    }
}

API

Primitives

<Form>

Form component, manages data and events

Props
  • view: (Function) the element your content will be rendered in
  • children: (Component|Function) children components
  • values: (Object) the form's initial values
  • messages: (Object) validation messages by input names
  • onSubmit: (Function) submit handler
  • onChange: (Function) change handler
  • disabled: (Boolean) disable form and it inputs

Form component source

Example
<Form
    onSubmit={this.onSubmit}
    onChange={this.onChange}
    values={post}
    messages={messages}
    disabled={saving}>
    {/* Input components ... */}
</Form>
<Input>

Input component wrapper, connects to Form component, receives and propagates data, do not use directly.

Props
  • name: (String) name of the input field
  • value: (Array|Boolean|Number|Object|String) value of the input field
  • serialize: (Function) function that extracts the input's data from the change event
  • children: (Component) children components

Input component source

Example
import React, { PropTypes, Component } from 'react';
import { Input } from 'react-formalize';

export default class MyCustomTextField extends Component {

    renderInput(props) {
        return ;
    }

    render() {
        return (
            <Input {...this.props}>
                {props => <input type="text" {...props}/>}
            </Input>
        );
    }
}

<Message>

Message component, connects to Form component, receives messages

Props
  • name: (String) name of the related input field
  • renderMessage: (Function) render a custom message
  • children: (Function) children components

Message component source

Example
<Form>
    <Text name="title"/>
    <Message name="title">{message => <p>{message}</p>}</Message>
</Form>

Build in input components

<Text>

Native text input component

Props
  • name: (String) name of the input field
  • type: (String) One of: text, date, datetime, datetime-local, email, month, number, password, tel, time, search, url, week. Default is text

Text component source

Example
<Form>
    <Input name="title"/>
    <button type="submit">Submit</button>
</Form>

Examples

Run the simple example:

cd react-formalize
npm install
cd react-formalize/examples/simple
npm install
npm start

License

MIT

Keywords

FAQs

Last updated on 30 Aug 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc