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:
@@ -62,6 +62,31 @@ export default function Inscription() {
|
|||||||
return;
|
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 {
|
try {
|
||||||
// Vérifier si l'apprenant existe déjà
|
// Vérifier si l'apprenant existe déjà
|
||||||
const existingApprenant = await utils.client.apprenants.getByEmail.query({ email: formData.email });
|
const existingApprenant = await utils.client.apprenants.getByEmail.query({ email: formData.email });
|
||||||
|
|||||||
7
todo.md
7
todo.md
@@ -137,3 +137,10 @@
|
|||||||
|
|
||||||
- [x] La validation d'une inscription ne fonctionne pas (déjà corrigé dans la version restaurée)
|
- [x] La validation d'une inscription ne fonctionne pas (déjà corrigé dans la version restaurée)
|
||||||
- [x] Lorsqu'un apprenant s'inscrit, il n'apparaît pas dans la liste des apprenants (déjà corrigé dans la version restaurée)
|
- [x] Lorsqu'un apprenant s'inscrit, il n'apparaît pas dans la liste des apprenants (déjà corrigé dans la version restaurée)
|
||||||
|
|
||||||
|
## Nouvelle fonctionnalité - Alerte public cible
|
||||||
|
|
||||||
|
- [x] Analyser le code d'inscription pour identifier où ajouter l'alerte
|
||||||
|
- [x] Implémenter la logique de vérification du public cible dans le formulaire d'inscription
|
||||||
|
- [x] Afficher une alerte d'information (non bloquante) si le public cible ne correspond pas
|
||||||
|
- [x] Tester l'alerte avec différents scénarios (correspondance, non-correspondance)
|
||||||
|
|||||||
Reference in New Issue
Block a user