Options
All
  • Public
  • Public/Protected
  • All
Menu

@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>
  )
}

Index

Type aliases

ButtonBindingOptions

ButtonBindingOptions: { disableOnSubmit?: undefined | false | true; validate?: undefined | false | true }

Type declaration

  • Optional disableOnSubmit?: undefined | false | true
  • Optional validate?: undefined | false | true

CheckboxBinding

CheckboxBinding: { checked: any; name: string; onChange: (e: any) => void }

Type declaration

  • checked: any
  • name: string
  • onChange: (e: any) => void
      • (e: any): void
      • Parameters

        • e: any

        Returns void

CreateFormBinder

CreateFormBinder: (form: ObservableForm) => ObservableFormBinder

Type declaration

FormBindingOptions

FormBindingOptions: { validate?: undefined | false | true }

Type declaration

  • Optional validate?: undefined | false | true

FormInitializer

FormInitializer<TValue, TResult>: (() => ObservableForm<TValue, TResult>) | ObservableForm<TValue, TResult>

Type parameters

  • TValue: object

  • TResult

InputBinding

InputBinding: { name: string; onChange: (e: any) => void; value: any }

Type declaration

  • name: string
  • onChange: (e: any) => void
      • (e: any): void
      • Parameters

        • e: any

        Returns void

  • value: any

RadioBinding

RadioBinding: { checked: any; name: string; onChange: (e: any) => void }

Type declaration

  • checked: any
  • name: string
  • onChange: (e: any) => void
      • (e: any): void
      • Parameters

        • e: any

        Returns void

SelectBinding

SelectBinding: { name: string; onChange: (e: any) => void; value: any }

Type declaration

  • name: string
  • onChange: (e: any) => void
      • (e: any): void
      • Parameters

        • e: any

        Returns void

  • value: any

SubmitBinding

SubmitBinding: { onSubmit: (e: any) => void }

Type declaration

  • onSubmit: (e: any) => void
      • (e: any): void
      • Parameters

        • e: any

        Returns void

SubmitButtonBinding

SubmitButtonBinding: { disabled: boolean; onClick: (e: any) => void }

Type declaration

  • disabled: boolean
  • onClick: (e: any) => void
      • (e: any): void
      • Parameters

        • e: any

        Returns void

UseForm

UseForm: <TValue, TResult>(initialValue: FormInitializer<TValue, TResult>) => ObservableForm<TValue, TResult>

Type declaration

    • <TValue, TResult>(initialValue: FormInitializer<TValue, TResult>): ObservableForm<TValue, TResult>
    • Type parameters

      • TValue: object

      • TResult

      Parameters

      Returns ObservableForm<TValue, TResult>

Functions

Const useForm

  • useForm(initialValue: (() => ObservableForm<TValue, TResult>) | ObservableForm<TValue, TResult>): ObservableForm<TValue, TResult>
  • Parameters

    • initialValue: (() => ObservableForm<TValue, TResult>) | ObservableForm<TValue, TResult>

    Returns ObservableForm<TValue, TResult>