9
103
Fork
You've already forked web
30

Ne pas utiliser de variable global via window. #2426

Open
opened 2026年07月03日 12:29:12 +02:00 by laem · 0 comments
Owner
Copy link

Dans #2365 il a été fait usage d'un pont entre "le monde de la carte" et "le monde de l'encart".

Eh oui dans cartes.app, la conception sépare ces deux mondes. D'un côté tout ce qui touche à la carte, et de l'autre tout ce qui touche à l'encart d'information (une fiche lieu, le moteur de recherche, etc).

Le second n'a pas accès à la carte. En général, la communication est faite par un attribut dans l'URL. Par exemple, "?allez=x" qui donne le lieu visualisé ou l'itinéraire s'il y a plusieurs lieux à la chaine.

Ainsi il est accessible à la fois dans MapComponents et Map d'un côté, et dans Content de l'autre.

Un autre exemple de moyen de faire un pont, c'est en stockant un état (useState) dans Container.tsx, le composant qui est là pour les piloter tous.

Ainsi Map peut faire un SetMonContenu et monContenu peut être passé à Map.

Dans #2365 donc, window a permis de faire ce pont, @MaGOs92 tu as eu raison de faire ça dans la v1 👍

Je n'ai pas corrigé l'implé car c'est pas trivial : l'opération de recherche des communes via map.querySourceFeatures n'est pas anodine, donc faut pas le faire tout le temps, donc il faut le paramètre shouldFetchBan dans MapComponents.

Donc je note ça pour plus tard.

Je pense que la recherche devrait déclencher des paramètres dans l'URL. C'était une erreur (pas grave) que de ne pas le faire. Le ?q et le ?local devrait y figurer. Ça nous aiderait à résoudre facilement ce problème :)

Dans #2365 il a été fait usage d'un pont entre "le monde de la carte" et "le monde de l'encart". Eh oui dans cartes.app, la conception sépare ces deux mondes. D'un côté tout ce qui touche à la carte, et de l'autre tout ce qui touche à l'encart d'information (une fiche lieu, le moteur de recherche, etc). Le second n'a pas accès à la carte. En général, la communication est faite par un attribut dans l'URL. Par exemple, "?allez=x" qui donne le lieu visualisé ou l'itinéraire s'il y a plusieurs lieux à la chaine. Ainsi il est accessible à la fois dans MapComponents et Map d'un côté, et dans Content de l'autre. Un autre exemple de moyen de faire un pont, c'est en stockant un état (useState) dans Container.tsx, le composant qui est là pour les piloter tous. Ainsi Map peut faire un SetMonContenu et monContenu peut être passé à Map. Dans #2365 donc, window a permis de faire ce pont, @MaGOs92 tu as eu raison de faire ça dans la v1 👍 Je n'ai pas corrigé l'implé car c'est pas trivial : l'opération de recherche des communes via map.querySourceFeatures n'est pas anodine, donc faut pas le faire tout le temps, donc il faut le paramètre shouldFetchBan dans MapComponents. Donc je note ça pour plus tard. Je pense que la recherche devrait déclencher des paramètres dans l'URL. C'était une erreur (pas grave) que de ne pas le faire. Le ?q et le ?local devrait y figurer. Ça nous aiderait à résoudre facilement ce problème :)
Sign in to join this conversation.
No Branch/Tag specified
master
abostats
SynchroM-master
gps
embeddings
lysios-patch-5
lysios-patch-4
lysios-patch-3
lysios-patch-2
lysios-patch-1
abo-serveur2
clim
zone-en-favori
categories_toujours_visibles
rechercher_ici_avant_resultats
test-2365
panoramax-contribution
add-categories-validations
gel-bug-prod
osm-note-2
broken
wikidata_booking
fuse7.3
lysios-patrimoine-3
gps2
atproto-fix-2
styles-secondaires-mais-maison
atproto-scopes
itineraire-printemps-2026
modal-sheet-5.6
nlnet-cost-climate-perf
pb-icones-religieux
couvoiture
etiennejr-patch-2
meteo-fainéante
logo-static-url
poc-page-vitrine
remove-compass
test-reproduce-1795
display-cycleway-lanes-2
poc-image
add-media-condition
mapterhorn
test-indoor-equal
outdoors-VS-indoorEqual
hiking-colors
fix-blog-typing
poc-next-international
fix-map-style-modal-not-closing
i18n
hide-odd-zoom-levels
filter_categories
resume_wikipedia
deplacement_bouttons
fix-1095
mobile_permettre_selection
position-carte-initiale
dégradé-icônes
better_wikipedia
affichage_donnees_wikidata
mobile-permettre-selection
avis-details
perf-seo
modal-sheet-5
plans-novembre
display-cycleway-lanes
fix-1227
fix-1234
etiennejr-patch-1
update-1240
fix-1236
fix-1131
photon-search-street
fix-1221
article-avis
net-haut-zoom
baies-moins-visibles
belles-fiches-lieu
fix-1157
bug-page-vie-privée
use-watername
fix-1176
carte-du-onde
fix-1166
page-news
tchou
add-icon-alias
vitesse
photon-opensearch
private-in-italic
bâtiments-3D
merge-categories
handle-private-highway
improve-findcategory
injection-pmtiles
fix-1128
check-icons
update-readme
category-rugby
bug-position-carte-vs-lieu
limites-vitesse
improve-find-category-from-tags-v2
integrer
document-osmfeature
translate-document
velo-fin-aout-25
velo-ete-2025
moins-de-maptiler
planet-pmtiles-tilemaker
fix-1048
panoramax-leger
plume
horaires-i18n
planet
maj-deps-juillet-2025
improve-find-category-from-tags
bug-encart
interactions-encart-mobile
clic-on-station
fix-1028
fix-1014
edit
add-big-rivers
add-shortbread-tiles
handle-deleted-osm-elements-v2
codeberg
improve-useEffect
immoloc
update-dashboard
analyze
terradraw
sombre2
calendar
poi-sprites-using-svg
style-sombre
sprites
annuaire
motis-gtfs-attributes
next-styled-components
dev
cool2
cool
panoramax-angle
env-static-urls
borders-only
panoramax2
intelligence
debug-iles
nouveau-serveur
france-protomaps
turbo
fouss/cartes-#338
blog2
legislatives
presentation
pas-de-geoloc-si-hash-different
protomaps
vaul
carte-trains
citiz
maj-paquets
icones
ui2
bblog
voyagevoyage
test-image-origine
bugimagefin
searchParams
voyage
avion
perf
studio
piscine
journée
année
journée-transition
score-dès-acceuil
fix-space-problem
rebase-5août
correspondance
règles-séparées
indeps-acre
demo
indeps
indeps-cachés
indication-temps-plein
indeps-refactor-simulations
indeps-vue-comparaison
indeps-inversion
barème-continu
indeps-démo
textes-branches-sécu
engine-enum
2019
transport
publicodes
as
infrance-nouvelle-landing
better-translation
co2
simplifATMP
controle-SMIC
webi18n
bug-avantages-en-nature
revert-352-infrance-navigation-v2
laem-patch-1
robots.txt
improve-perf
iframe-bugfix
quickfixes
lib
irsimple
hiringinfrance.com
dégradé
refstate
johan
zrr
logo-interactif
revert-216-improve-tracking
redesign2
zrr2
fixtrad
correction-salaire-brut
petit-state
alien-consolidate
translate-ui
npm
alien-brut-net
translatable
différent
ir18
fix-typo
add-tracking
fix-collect-missing
défauts-partout
fix-double-unfold-three
fix-double-unfold
versement-transport
blocker-questions
v3
v2.1
v2
v1
v0.6.4
v0.6.3
v0.6.2
v0.6.1
v0.6.0
0.7.0
v0.5.1
v0.5.0
v0.4.2
v0.4.1
v0.4.0
v0.3.3
v0.3.2
v0.3.1
v0.3
v0.2
v0.1-cdd-alpha
v0-démo-tag-nav
Labels
Clear labels
🎨 Design
À propos de l'interface et de l'UX
💡 Idée
Nouvelle feature à intégrer
question
Further information is requested
🌍 OSM
À propos de l'affichage et l'édition des éléments OSM
🌱 Amélioration
Amélioration/fix de l'existant
🐞 Bug
Something isn't working
📊 SEO
📋 Catégories
À propos des catégories de recherche et de l'annuaire
📖 Wiki
📝Avis
A propos de la fonction avis et de bluesky
📢 Oyez
📷 Photos
A propos des photos (sources, affichage)
🔍Recherche
A propos de la barre de recherche et de photon
🔥 Actuel
🔧 tech
🖌 Styles
Styles de la carte
🧝i18n
🧪 R&D
🚍 Transports
🚙 Voiture
🚨Prioritaire
Ticket à traiter rapidement
🚲Vélo
Cartes
climat
Communication
demo
Cette branche doit être déployée comme une démo
dependencies
Pull requests that update a dependency file
javascript
Pull requests that update javascript code
Pas urgent
Plein-air
Tuiles
Verso
Vieux
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cartes/web#2426
Reference in a new issue
cartes/web
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?