Démarrage rapide React Router
Ajoutez un formulaire de contact fonctionnel à votre application React Router. Vous écrivez le formulaire, et Formerie le vérifie, le conserve et vous l’envoie par courriel.
Installer
npm install @formerie/react @formerie/clientpnpm add @formerie/react @formerie/clientyarn add @formerie/react @formerie/clientbun add @formerie/react @formerie/clientLes paquets Formerie sont en alpha, donc leurs API peuvent encore changer d’une version à l’autre.
Ajouter le formulaire
Utilisez ce fichier comme composant de route, par exemple app/routes/contact-form.tsx.
import { useFormerieSubmit } from "@formerie/react";
export default function ContactForm() {
const { submit, state } = useFormerieSubmit({ workspace: "acme", form: "contact" });
return (
<form
onSubmit={(event) => {
event.preventDefault();
submit({ fields: Object.fromEntries(new FormData(event.currentTarget)) });
}}
>
<input name="name" placeholder="Name" required />
<input name="email" type="email" placeholder="Email" required />
<textarea name="message" placeholder="Message" required />
<button disabled={state.status === "submitting"}>Send</button>
{state.result?.ok === true && <p>Thanks!</p>}
{state.result?.ok === false && <p>{state.result.error.message}</p>}
</form>
);
}Le name de chaque champ de saisie correspond au champ qu’il remplit dans Formerie.
Configurer le formulaire dans l’application
- Ouvrez app.formerie.com et créez un formulaire nommé Contact. Il vient avec les champs de nom, de courriel et de message que ce code envoie.
- Dans l’onglet Livraison, ajoutez votre adresse courriel, puis choisissez Enregistrer la livraison. Confirmez le courriel que Formerie vous envoie.
- Dans l’onglet Publication, choisissez API seulement et ajoutez l’adresse qu’affiche votre serveur de développement, comme
http://localhost:5173, sous Adresses de vos sites.localhostet127.0.0.1comptent comme deux adresses différentes. Ajoutez l’adresse de votre site en ligne de la même façon au moment de le déployer. - Choisissez Publier le formulaire.
- Dans le code ci-dessus, remplacez
acmepar l’identifiant d’espace de travail affiché dans l’onglet Publication.
Vérifier que c’est arrivé
Lancez votre application, remplissez le formulaire et envoyez-le. « Thanks! » s’affiche dans la page, un texte que vous pouvez changer. Dans l’application Formerie, votre réponse apparaît sous Soumissions, et son courriel sous Livraisons.
Vous voyez une erreur CORS ou NETWORK_ERROR? L’adresse de votre site n’est pas encore dans l’onglet Publication, ou vous n’avez pas republié
depuis que vous l’avez ajoutée. Consultez Dépannage.
Aller plus loin
À partir de votre serveur
Utilisez une action de route, et un formulaire natif pourra y envoyer ses réponses. Lisez ce que l’approche par le serveur implique avant de la choisir.
import { FormerieRuntimeClient } from "@formerie/client";
import type { Route } from "./+types/contact";
const formerie = new FormerieRuntimeClient();
export async function action({ request }: Route.ActionArgs) {
const fields = Object.fromEntries(await request.formData());
return formerie.submit("acme", "contact", { fields });
}À lire ensuite
- Recettes : demandes de soumission, sondages et acheminement par sujet
- Afficher les erreurs de champ et plus encore
- SDK JavaScript et API : la référence complète