"use client"; import { useState } from "react"; import Link from "next/link"; import { Modal } from "./Modal"; import { submitMembershipRequest } from "@/app/actions/public"; export function MembershipModalButton({ label, className, style, }: { label: string; className?: string; style?: React.CSSProperties; }) { const [open, setOpen] = useState(false); const [pending, setPending] = useState(false); const [done, setDone] = useState(false); const [error, setError] = useState(null); function close() { setOpen(false); // Réinitialise après la fermeture (laisse l'animation finir). setTimeout(() => { setDone(false); setError(null); }, 200); } async function onSubmit(e: React.FormEvent) { e.preventDefault(); setPending(true); setError(null); const res = await submitMembershipRequest(new FormData(e.currentTarget)); setPending(false); if (res.ok) setDone(true); else setError(res.error ?? "Une erreur est survenue."); } return ( <> {done ? (
✓

Demande envoyée ! L'équipe Plein R vous recontactera rapidement.

) : (

Laissez vos coordonnées : nous revenons vers vous pour finaliser votre adhésion.