Checkpoint: ✅ Modification de la boîte de dialogue de test de rappels
- Ajout d'un champ de saisie pour l'email du destinataire - Modification du texte : "Tous les rappels configurés pour cette séquence seront envoyés à l'adresse email que vous indiquez ci-dessous" - Validation de l'email avant envoi - Backend modifié pour envoyer à l'email saisi au lieu de tous les inscrits - Les logs enregistrent correctement l'email de test utilisé
This commit is contained in:
@@ -35,6 +35,7 @@ export default function AdminSequences() {
|
||||
const [isCompactView, setIsCompactView] = useState(true);
|
||||
const [isConfirmTestOpen, setIsConfirmTestOpen] = useState(false);
|
||||
const [sequenceToTest, setSequenceToTest] = useState<number | null>(null);
|
||||
const [testEmail, setTestEmail] = useState("");
|
||||
|
||||
const [formData, setFormData] = useState({
|
||||
formationId: "",
|
||||
@@ -94,17 +95,20 @@ export default function AdminSequences() {
|
||||
toast.success("Email de test envoyé avec succès");
|
||||
setIsConfirmTestOpen(false);
|
||||
setSequenceToTest(null);
|
||||
setTestEmail("");
|
||||
},
|
||||
onError: (error) => {
|
||||
toast.error(`Erreur lors de l'envoi du test : ${error.message}`);
|
||||
setIsConfirmTestOpen(false);
|
||||
setSequenceToTest(null);
|
||||
setTestEmail("");
|
||||
},
|
||||
});
|
||||
|
||||
const handleTestRappel = (sequenceId: number, sequence: any) => {
|
||||
if (sequence.dates && sequence.dates.length > 0) {
|
||||
setSequenceToTest(sequenceId);
|
||||
setTestEmail(""); // Réinitialiser l'email
|
||||
setIsConfirmTestOpen(true);
|
||||
} else {
|
||||
toast.error("Cette séquence n'a pas de dates configurées");
|
||||
@@ -113,7 +117,14 @@ export default function AdminSequences() {
|
||||
|
||||
const confirmTestRappel = () => {
|
||||
if (sequenceToTest !== null) {
|
||||
testerRappelMutation.mutate({ sequenceId: sequenceToTest });
|
||||
if (!testEmail || !testEmail.includes('@')) {
|
||||
toast.error("Veuillez saisir une adresse email valide");
|
||||
return;
|
||||
}
|
||||
testerRappelMutation.mutate({
|
||||
sequenceId: sequenceToTest,
|
||||
emailTest: testEmail
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1076,17 +1087,31 @@ export default function AdminSequences() {
|
||||
<Dialog open={isConfirmTestOpen} onOpenChange={setIsConfirmTestOpen}>
|
||||
<DialogContent>
|
||||
<DialogHeader>
|
||||
<DialogTitle>Confirmer l'envoi du test</DialogTitle>
|
||||
<DialogTitle>Tester l'envoi de rappels</DialogTitle>
|
||||
<DialogDescription>
|
||||
Êtes-vous sûr de vouloir envoyer un email de test de rappel à tous les apprenants inscrits confirmés de cette séquence ?
|
||||
Tous les rappels configurés pour cette séquence seront envoyés à l'adresse email que vous indiquez ci-dessous.
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<div className="flex justify-end gap-2 pt-4">
|
||||
<div className="space-y-4 py-4">
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="test-email">Adresse email du destinataire</Label>
|
||||
<Input
|
||||
id="test-email"
|
||||
type="email"
|
||||
placeholder="exemple@domaine.com"
|
||||
value={testEmail}
|
||||
onChange={(e) => setTestEmail(e.target.value)}
|
||||
disabled={testerRappelMutation.isPending}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex justify-end gap-2">
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => {
|
||||
setIsConfirmTestOpen(false);
|
||||
setSequenceToTest(null);
|
||||
setTestEmail("");
|
||||
}}
|
||||
disabled={testerRappelMutation.isPending}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user