diff --git a/src/app/backend/actions.ts b/src/app/backend/actions.ts index 5144cad..2892b07 100644 --- a/src/app/backend/actions.ts +++ b/src/app/backend/actions.ts @@ -1163,6 +1163,9 @@ export async function approveMembershipRequest(formData: FormData): Promise r.status === "approved" && r.email) + .map((r) => (r.email ?? "").trim().toLowerCase()) + .filter(Boolean); + const memberByEmail = new Map(); + if (approvedEmails.length > 0) { + const rows = await db + .select({ id: members.id, email: members.email }) + .from(members) + .where(inArray(members.email, approvedEmails)); + for (const row of rows) memberByEmail.set(row.email.trim().toLowerCase(), row.id); + } + return (
{/* ---- Demandes d'adhésion ---- */} @@ -72,13 +88,32 @@ export default async function DemandesPage() {
-
- -
- - - Rejeter -
+ {/* Les actions dépendent du statut : une demande approuvée a déjà + produit son adhérent, on ne propose plus que d'ouvrir sa fiche. */} +
+ {r.status === "approved" ? ( + (() => { + const memberId = memberByEmail.get((r.email ?? "").trim().toLowerCase()); + return memberId ? ( + + Ouvrir la fiche adhérent → + + ) : ( + Adhérent créé + ); + })() + ) : ( + <> + + {r.status === "new" && ( +
+ + + Rejeter +
+ )} + + )}
{r.message && (