From 84c0363067bf1c57c153ddaadcf379add8bb971b Mon Sep 17 00:00:00 2001 From: sucupira Date: Sun, 19 Jul 2026 20:31:20 -0400 Subject: [PATCH] fix(app): revelation reel+distance jamais dessinee (effet Svelte sans dependance) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- app/package-lock.json | 4 ++-- app/package.json | 2 +- app/src/lib/components/GameMap.svelte | 8 +++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/package-lock.json b/app/package-lock.json index f460e66..7647171 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -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", diff --git a/app/package.json b/app/package.json index 728a656..dd28042 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "jwe", - "version": "2.0.0", + "version": "2.0.1", "private": true, "type": "module", "scripts": { diff --git a/app/src/lib/components/GameMap.svelte b/app/src/lib/components/GameMap.svelte index 403037f..49bc3f8 100644 --- a/app/src/lib/components/GameMap.svelte +++ b/app/src/lib/components/GameMap.svelte @@ -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;