final-form-focus

WebJar for final-form-focus

License

License

MIT
Categories

Categories

ORM Data
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

final-form-focus
Last Version

Last Version

1.1.2
Release Date

Release Date

Type

Type

jar
Description

Description

final-form-focus
WebJar for final-form-focus
Project URL

Project URL

https://www.webjars.org
Source Code Management

Source Code Management

https://github.com/final-form/final-form-focus

Download final-form-focus

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/final-form-focus/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>final-form-focus</artifactId>
    <version>1.1.2</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/final-form-focus/
implementation 'org.webjars.npm:final-form-focus:1.1.2'
// https://jarcasting.com/artifacts/org.webjars.npm/final-form-focus/
implementation ("org.webjars.npm:final-form-focus:1.1.2")
'org.webjars.npm:final-form-focus:jar:1.1.2'
<dependency org="org.webjars.npm" name="final-form-focus" rev="1.1.2">
  <artifact name="final-form-focus" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='final-form-focus', version='1.1.2')
)
libraryDependencies += "org.webjars.npm" % "final-form-focus" % "1.1.2"
[org.webjars.npm/final-form-focus "1.1.2"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

๐Ÿ Final Form Focus ๐Ÿง

NPM Version NPM Downloads Build Status codecov.io styled with prettier

Decorator for ๐Ÿ Final Form that will attempt to apply focus to the first field with an error upon an attempted form submission.


Demo


Installation

npm install --save final-form final-form-focus

or

yarn add final-form final-form-focus

Usage

๐Ÿ Final Form Usage

import { createForm } from 'final-form'
import createDecorator from 'final-form-focus'

// Create Form
const form = createForm({ onSubmit })

// Create Decorator
const decorator = createDecorator()

// Decorate form
const undecorate = decorator(form)

// Use form as normal

๐Ÿ React Final Form Usage

import React from 'react'
import { Form, Field } from 'react-final-form'
import createDecorator from 'final-form-focus'

const focusOnErrors = createDecorator()
...
<Form
  onSubmit={submit}
  decorators={[ focusOnErrors ]} // <--------- ๐Ÿ˜Ž
  validate={validate}
  render={({ handleSubmit }) =>
    <form onSubmit={handleSubmit}>

      ... inputs here ...

    </form>
  }
/>

Example

Focus On Error Example

Demonstrates how ๐Ÿ Final Form Focus ๐Ÿง works with ๐Ÿ React Final Form.

API

createDecorator: (getInputs?: GetInputs, findInput?: FindInput) => Decorator

A function that takes an optional function to collect a list of focusable inputs on the page and provides a ๐Ÿ Final Form Decorator that will focus on the top-most input on the page with an error when a form submission fails. If no getInputs parameter is provided, it will use a generic one that will return all inputs that appear in document.forms. If no findInput parameter is provided, it will use a generic one that matches the name attribute of the focusable input with the path in the error object.

getFormInputs: (formName: string) => GetInputs

A GetInputs generator that will narrow the list of inputs down to those contained in the named form, i.e. document.forms[formName].

Types

FocusableInput: { name: string, focus: () => void }

A light abstraction of any input that has a name property and upon which focus() may be called.

GetInputs: () => FocusableInput[]

A function that collects a list of focusable inputs that exist on the page.

FindInput: (FocusableInput[], {}) => ?FocusableInput

A function that returns the first element in a list of focusable inputs that has an error

org.webjars.npm

Final Form

Versions

Version
1.1.2