-
Notifications
You must be signed in to change notification settings - Fork 3
feat: Affichage uniquement des disruption de la ligne dans certains cas #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
| const urlSearchParams = new URLSearchParams(window.location.search) | ||
| const currentLineName = urlSearchParams.get("for") | ||
| if ( | ||
| currentLineName && | ||
| this.shouldOnlyShowDisruptionForCurrentLine(disruptions, currentLineName) | ||
| ) { | ||
| return disruptions.filter( | ||
| (disruption) => disruption.line.number === currentLineName | ||
| ) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Le service devrait rester intact. Puis ça oblige à récupérer l'URL courante.
Il faudrait bouger le code de tri dans la vue qui affiche les perturbations. (Au niveau de screen.vue sûrement)
| /** | ||
| * | ||
| * @param disruptions - Liste des perturbations | ||
| * @param currentLineName - Nom de la ligne actuelle | ||
| * @returns boolean True si il y a une perturbation de type incident ou stoppedService sur la ligne actuelle | ||
| */ | ||
| private static shouldOnlyShowDisruptionForCurrentLine( | ||
| disruptions: SimpleDisruption[], | ||
| currentLineName: string | ||
| ): boolean { | ||
| const targetTypes = ["incident", "stoppedService"] | ||
| // Nombre de perturbations nécessaires pour afficher UNIQUEMENT les perturbations sur la ligne actuelle | ||
| const numberOfDisruptionsNeeded = 3 | ||
| // Retourne True si il y a une perturbation de type incident ou stoppedService sur la ligne actuelle | ||
| // Ou s'il y a plus de 3 perturbations sur la ligne actuelle | ||
| return ( | ||
| disruptions.some((disruption) => { | ||
| return ( | ||
| disruption.line.number === currentLineName && | ||
| targetTypes.includes(disruption.type) | ||
| ) | ||
| }) || | ||
| disruptions.filter((disruption) => { | ||
| return disruption.line.number === currentLineName | ||
| }).length >= numberOfDisruptionsNeeded | ||
| ) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mettre ça dans un fichier utilitaire
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Est ce qu'il n'y a que ces deux cas ? Sinon on pourrait aussi return un enum qui dit comment on doit afficher toutes les perturbations retournées par l'api : toutes / ligne courante uniquement
IRL les Infos trafic de la ligne actuelle sont prioritaires dans certains cas.



Ici s'il y en a plus de 2 ou s'il on en a de type 'incident' ou 'stoppedService' alors on affiche que celles-la.
Exemples :
Incident mais on voit les infos de toutes les lignes sauf de la A
Après :