PapillonApp / Papillon

Le client alternatif de vie scolaire ouvert à tous et porté par la communauté
https://getpapillon.xyz
GNU General Public License v3.0
131 stars 58 forks source link

[Bug]: Crash lors de l'ajout un espace dans la recherche des villes #251

Closed LeGeek01 closed 1 month ago

LeGeek01 commented 1 month ago

Description du bug

L'appli crash quand on tente de rechercher une ville en mettant un espace...

Étapes à reproduire

  1. Sélectionner pronote
  2. Sélectionner la localisation de ville
  3. Mettre un espace dans la barre de recherches (la recherche ne se fait pas si il y a moins de 3 caractères, ça c'est normal)

Comportement attendu

Pas de crash.....

Appareil

Samsung Galaxy A13

Version du système d`exploitation

Android 14

Version

6.6.5-beta

Environnement

Application native Android

Service scolaire

🦋 Pronote

Captures d'écran / vidéo

No response

Contexte supplémentaire

No response

LeGeek01 commented 1 month ago

j'ai trouvé pourquoi ! fetch/geolocalisation/geo-gouv.ts ligne 20:

  uri.searchParams.set('q', searchQuery);

Si je log le href de cet uri avec trois espaces j'ai

https://api-adresse.data.gouv.fr/search/?type=municipality&limit=6&q=+++

Et l'api renvoie l'erreur suivante :

{"code":400,"message":"q must contain between 3 and 200 chars and start with a number or a letter"}

c'est pour ça que ça crash

LeGeek01 commented 1 month ago

enfaite le searchParams.set transforme les espaces en "+"

Sacha338 commented 1 month ago

Je fait une PR ?

LeGeek01 commented 1 month ago

une pr pour ?

Sacha338 commented 1 month ago

pour régler le problème https://github.com/PapillonApp/Papillon/pull/252

LeMaitre4523 commented 1 month ago

pour régler le soucis va falloir surtout faire un encodeURIComponent, normalement ça devrait fonctionner avec les espaces image

Sacha338 commented 1 month ago

comme ça :

const uri = new URL(GEO_API_URL); uri.searchParams.set('q', encodeURIComponent(searchQuery));

LeMaitre4523 commented 1 month ago

Ouais

LeGeek01 commented 1 month ago

pour régler le soucis va falloir surtout faire un encodeURIComponent, normalement ça devrait fonctionner avec les espaces image

ah bordel c'est ce que je cherchais