React library of formcarry.
Run this command to install with yarn:
yarn add @formcarry/react
or with npm:
npm install --save @formcarry/react
You have to have React as a dependency in your project in order to use this library.
Also this package uses React Hooks, therefore you have to use React >= 16.8.0
A simple demonstration with React library:
import { useForm } from '@formcarry/react';
function MyFormcarry() {
  // Call the `useForm` hook in your function component
  const {state, submit} = useForm({
    id: 'Your-Form-ID-From-Formcarry'
  });
  // Success message
  if (state.submitted) {
    return <div>Thank you! We received your submission.</div>;
  }
  return (
    <form onSubmit={submit}>
		<label htmlFor="name">Name</label>
		<input id="name" type="text" name="text" />
		<label htmlFor="surname">Surname</label>
		<input id="surname" type="text" name="surname" />
		
		<label htmlFor="email">Email</label>
		<input id="email" type="email" name="email" />
		
		<label htmlFor="message">Message</label>
		<textarea id="message" name="message" />
		
		<button type="submit">Send</button>
    </form>
  );
}You have to use a <form> element and pass submit as the onSubmit handler.
We return state and submit from useForm by default, but you can rename it to whatever you want, like this:
import { useForm } from '@formcarry/react';
function MyFormcarry() {
  const {state: formcarryState, submit: formcarrySubmit} = useForm({
	id: 'Your-Form-ID-From-Formcarry'
  });
  if (formcarryState.submitted) {
    return <div>Thank you! We received your submission.</div>;
  }
  return (
    <form onSubmit={formcarrySubmit}>
		<label htmlFor="name">Name</label>
		<input id="name" type="text" name="text" />
		<label htmlFor="surname">Surname</label>
		<input id="surname" type="text" name="surname" />
		
		<label htmlFor="email">Email</label>
		<input id="email" type="email" name="email" />
		
		<label htmlFor="message">Message</label>
		<textarea id="message" name="message" />
		
		<button type="submit">Send</button>
    </form>
  );
}import { useForm } from '@formcarry/react';
function MyFormcarry() {
  // Call the `useForm` hook in your function component
  const {state, submit} = useForm({
	id: 'Your-Form-ID-From-Formcarry',
	extraData: {
		// add whatever you want
		screenSize: `${window.screen.width}x${window.screen.height}`,
		language: window.navigator.language,
	}
  });
  ...
}You can pass those to useForm:
| Key | Description | 
|---|---|
id | 
Your Form ID, which you can get it from formcarry | 
debug | 
Boolean, it prints out logs to the console, true by default | 
extraData | 
Accepts object, it will mix those object with form fields | 
The state object contains the following:
| Key | Description | 
|---|---|
submitting | 
A Boolean indicating whether the form is currently submitting | 
submitted | 
A Boolean indicating whether the form successfully submitted | 
response | 
Returns formcarry successful response | 
error | 
Returns formcarry error |