Checkpoint: Ajout d'une alerte d'information non bloquante qui s'affiche lorsqu'un apprenant s'inscrit à une séquence dont le public cible ne correspond pas à sa fonction. L'alerte persiste 8 secondes avec un délai de 2 secondes avant la soumission pour laisser le temps de lecture.

This commit is contained in:
Manus Sandbox
2025-11-17 04:52:17 -05:00
parent 634565b134
commit 19dbe9cccc
2 changed files with 32 additions and 0 deletions

View File

@@ -62,6 +62,31 @@ export default function Inscription() {
return;
}
// Vérifier si le public cible correspond à la fonction de l'apprenant
const selectedSequence = sequences?.find(s => s.id === selectedSequenceId);
if (selectedSequence && selectedSequence.publicCible) {
const publicCibleMap: Record<string, string> = {
"directeur": "directeur",
"chef_service": "chef_service",
"autre": "autre"
};
if (publicCibleMap[selectedSequence.publicCible] !== formData.fonction) {
const publicCibleLabel = selectedSequence.publicCible === "directeur" ? "Directeurs" :
selectedSequence.publicCible === "chef_service" ? "Chefs de service" : "Autre";
const fonctionLabel = formData.fonction === "directeur" ? "Directeur" :
formData.fonction === "chef_service" ? "Chef de service" : "Autre";
toast.info(
`Information : Cette séquence est destinée aux ${publicCibleLabel}, mais vous êtes inscrit(e) en tant que ${fonctionLabel}. Vous pouvez tout de même vous inscrire.`,
{ duration: 8000 }
);
// Attendre 2 secondes pour que l'utilisateur puisse lire l'alerte
await new Promise(resolve => setTimeout(resolve, 2000));
}
}
try {
// Vérifier si l'apprenant existe déjà
const existingApprenant = await utils.client.apprenants.getByEmail.query({ email: formData.email });