1.0.1 • Published 10 months ago

@bluecateng/auto-forms v1.0.1

Weekly downloads
17
License
ISC
Repository
github
Last release
10 months ago

@bluecateng/auto-forms GitHub license npm version

Auto-forms is a library that helps you quickly create "auto-wired" forms in React. Auto-Forms is a small library which ensures the least amount of performance hit possible, and makes it easy to create forms that already have the values, validation functions, error messages, and submit functions all work seamlessly together.

Installation

npm i -S @bluecateng/auto-forms

Creating Connected Components

Input

import connect from '@bluecateng/auto-forms';
import ComponentToConnect from '...';

//Use the connect function to map the state of the component to the state of the auto-wired form:
const AutoWiredTextInput = connect(ComponentToConnect, ({value, error, setValue}) => ({
	value,
	error,
	onChange: useCallback(({target: {value}}) => setValue(value), [setValue]),
}));

export default AutoWiredTextInput;

Submit

import React from 'react';
import PropTypes from 'prop-types';
import {useFormState} from '@bluecateng/auto-forms';

const AutoWiredSubmit = ({...props}) => {
	//use useFormState to hook into the auto wired forms state:
	const {hasErrors} = useFormState();
	return <input type="submit" disabled={hasErrors()} />;
};

export default AutoWiredSubmit;

Creating a form

import {Form, validateNotEmpty} from '@bluecateng/auto-forms';
import {AutoWiredTextInput} from '...';
import {AutoWiredSubmit} from '...';
import {sendData} from '...';

const FormExample = () => {
	const initialValues = {
		name: 'example',
	};

	const rules = {
		name: validateNotEmpty('Name is required'),
	};

	return (
		<Form
			initialValues={initialValues}
			rules={rules}
			onSubmit={(values) => {
				sendData(values.name);
			}}>
			<AutoWiredTextInput name="name" />
			<AutoWiredSubmit />
		</Form>
	);
};

export default FormExample;

Documentation

useFormField- Returns the field by value as well as a function to edit the field outside of the input, similar to hooks in React.

useFormState- Returns an object containing the entire state of form.

validateAnd- Validates an array of functions, only returns null if all validations rules pass.

validateMatches- Validates a field against a regex pattern.

validateNotEmpty-Validates a field to ensure it is not empty.

validateNotMatches-Validates a field to ensure it does NOT match a regex pattern.

License

ISC

1.0.1

10 months ago

1.0.0

2 years ago

0.6.1

2 years ago

0.6.0

2 years ago

0.5.0

3 years ago

0.4.1

4 years ago

0.4.0

5 years ago

0.3.0

5 years ago

0.3.0-alpha.0

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.2.0-alpha.2

5 years ago

0.2.0-alpha.1

5 years ago

0.2.0-alpha.0

5 years ago

0.1.0

5 years ago