3.8.0 • Published 3 years ago

@bytesoftio/use-form v3.8.0

Weekly downloads
13
License
MIT
Repository
github
Last release
3 years ago

@bytesoftio/use-form

Installation

yarn add @bytesoftio/use-form or npm install @bytesoftio/use-form

Table of contents

Description

This library provides an integration form the @bytesoftio/form package.

Form hooks and bindings

For a React component to properly update upon form state changes, you must first hook the form up. There are several ways on how to consume forms in components.

After consuming a form you must bind it to input fields. This library already ships with a very lightweight binder inside, but you can very easily roll your own binder for your specific ui library. Just take a look on how FormBinder is written - its easy as cake.

Lets take a look on how to use hooks and bindings:

import React from "react"
import {createForm} from "@bytesoftio/form" 
import {useForm, createFormBinder} from "@bytesoftio/use-form"

const formFactory = () => createForm()
const sharedFormInstance = createForm()

const Component = () => {
  const formFromFactory = useForm(formFactory)
  const sharedForm = useForm(sharedFormInstance)
  const formFromInlineFactory = useForm(() => createForm())
  
  const binder = createFormBinder(formFromFactory)
  
  return (
    <form { ...bind.form() }>
    	<input type="text" { ...bind.input("field1") } />
    	
      <input type="checkbox" { ...bind.checkbox("field2") } />
      
      <input type="radio" { ...bind.radio("field3", "value1") } />
      <input type="radio" { ...bind.radio("field3", "value2") } />
      
      <select { ...bind.select("field4") }>
        <option>option 1</option>
        <option>option 2<option>
        <option>option 3<option>
      </select>
          
      <button { ...bind.submit() }>Submit</button>
    </form>
  )
}
3.8.0

3 years ago

3.7.0

3 years ago

3.6.0

3 years ago

3.5.1

3 years ago

3.5.0

3 years ago

3.4.0

3 years ago

3.3.0

4 years ago

3.2.0

4 years ago

3.1.1

4 years ago

3.1.0

4 years ago

3.0.0

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago