implement blog subscription feature with modal and email handling

This commit is contained in:
2026-06-02 19:46:47 +02:00
parent 77f3c4ddbd
commit 3f985af13b
7 changed files with 108 additions and 85 deletions
+26
View File
@@ -0,0 +1,26 @@
'use server';
import { addContact } from '@/lib/mail';
export type SubscribeState = { success: true } | { success: false; error: string } | null;
export async function subscribeNewsletter(
_: SubscribeState,
formData: FormData,
): Promise<SubscribeState> {
const email = (formData.get('email') as string)?.trim();
if (!email) return { success: false, error: "L'adresse email est requise." };
const emailRe = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRe.test(email)) {
return { success: false, error: 'Adresse email invalide.' };
}
try {
await addContact(email);
return { success: true };
} catch (err) {
return { success: false, error: 'Une erreur est survenue. Réessaie plus tard.' };
}
}