fix(app): revelation reel+distance jamais dessinee (effet Svelte sans dependance)

Au montage, l'effet $effect de revelation retournait avant toute lecture
reactive (carte pas encore creee) : Svelte n'enregistrait aucune dependance
et ne le relancait jamais — ni le marqueur reel, ni la ligne, ni l'etiquette
de distance n'apparaissaient apres validation.

- lecture inconditionnelle de real en tete d'effet
- garde isStyleLoaded() au lieu de loaded() (faux pendant le chargement
  des tuiles, typique juste apres un pan/zoom pour placer son guess)

Verifie au navigateur (Playwright) : 2 marqueurs apres validation, ligne
pointillee + etiquette de distance, nettoyage au round suivant, repetition OK.
This commit is contained in:
sucupira
2026-07-19 20:31:20 -04:00
parent 70f448a4f7
commit 84c0363067
3 changed files with 10 additions and 4 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "jwe",
"version": "2.0.0",
"version": "2.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "jwe",
"version": "2.0.0",
"version": "2.0.1",
"dependencies": {
"mapillary-js": "^4.1.2",
"maplibre-gl": "^5.1.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "jwe",
"version": "2.0.0",
"version": "2.0.1",
"private": true,
"type": "module",
"scripts": {
+7 -1
View File
@@ -326,7 +326,13 @@
let ancienReal: Coordonnees | null = null;
$effect(() => {
if (!map || !map.loaded()) return;
// Lecture inconditionnelle de `real` : au montage la carte n'existe pas
// encore, et un retour anticipé avant toute lecture réactive ferait que
// Svelte n'enregistre aucune dépendance — l'effet ne serait jamais relancé.
// (isStyleLoaded et non loaded : loaded() reste faux pendant le chargement
// des tuiles, ce qui ferait rater le dessin juste après un zoom/pan.)
void real;
if (!map || !map.isStyleLoaded()) return;
if (real && !ancienReal) dessinerRevelation();
if (!real && ancienReal) nettoyerRevelation();
ancienReal = real;