UNPKG

use-basin

Version:

A simple React hook for handling Basin AJAX forms.

64 lines (46 loc) 1.77 kB
# Basin React Hook A simple React hook for handling Basin AJAX forms. ## Installation Install the package: ```sh npm i -D use-basin ``` **Note**: a React version above 16.8.3 must be installed as a peer dependency. ## Usage Create a form that will submit to Basin using AJAX: ```js import useBasin from 'use-basin'; const Form = () => { const [state, submit] = useBasin('<form-id>'); return <form onSubmit={submit}>{/* inputs... */}</form>; }; ``` You can also create your own onSubmit handlers for custom error checking or other functionality: ```js const onSubmit = (e) => { e.preventDefault(); const data = new FormData(e.target); console.log(data.get('name')); // Be sure to call the submit function to actually // submit the form. submit(e); }; ``` You can also use the returned state object for loaders and error handling: ```js import useBasin from 'use-basin'; const Form = () => { const [{ pending, error, submitted }, submit] = useBasin('<form-id>'); if (pending) return <div>Submitting...</div>; if (error) return <div>Something went wrong =(</div>; if (submitted) return <div>Thanks for submitting our form!</div>; return <form onSubmit={submit}>{/* inputs... */}</form>; }; ``` ## State Variables The following variables are returned in an object as the first value in the array: | Name | Description | Type | | --------- | --------------------------------------------- | --------- | | Submitted | The form has been submitted | `boolean` | | Pending | A POST request has started but not completed. | `boolean` | | Error | The most recent POST request failed. | `boolean` |