From 7e7d307cddbdf3485e0625bd7747c193b213ecb2 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 14 Sep 2026 16:26:35 +0000 Subject: [PATCH] =?UTF-8?q?Type=20la=20redirection=20de=20la=20bo=C3=AEte?= =?UTF-8?q?=20mail=20en=20=C2=AB=20never=20=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `redirect` lève : le déclarer supprime les `!` posés après chaque appel pour rassurer TypeScript. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_014QsLjRAnuLwivqxCbM4WeP --- src/app/backend/actions.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/app/backend/actions.ts b/src/app/backend/actions.ts index e67dae6..94fa4f2 100644 --- a/src/app/backend/actions.ts +++ b/src/app/backend/actions.ts @@ -1650,7 +1650,8 @@ async function requireMailSettings() { return access; } -function mailRedirect(message: string, tone: "error" | "ok") { +/** `redirect` lève : le type `never` évite d'avoir à rassurer TypeScript après. */ +function mailRedirect(message: string, tone: "error" | "ok"): never { redirect(`/backend/boite-mail?${tone}=${encodeURIComponent(message)}`); } @@ -1739,15 +1740,15 @@ export async function sendMailTest() { ); const result = await sendNow({ - to: recipient!.email, - toName: recipient!.name, + to: recipient.email, + toName: recipient.name, subject, html, replyTo: settings.association_email || null, }); await logSentMail({ kind: "test", - toAddress: recipient!.email, + toAddress: recipient.email, subject, createdById: userId, result: result.ok ? { ok: true } : { ok: false, reason: result.reason }, @@ -1755,7 +1756,7 @@ export async function sendMailTest() { revalidatePath("/backend/boite-mail"); mailRedirect( - result.ok ? `Message de test envoyé à ${recipient!.email}.` : `Échec de l'envoi : ${result.reason}`, + result.ok ? `Message de test envoyé à ${recipient.email}.` : `Échec de l'envoi : ${result.reason}`, result.ok ? "ok" : "error" ); }