Sfoglia il codice sorgente

Correctie: horeca-overzicht laadt al lazy + 114/117 geverifieerd

Correctie op een eerdere bewering van deze sessie ("tot 60 requests per
schermopening"): die telling keek naar zes aanroepen in de code zonder de
triggers. On Page Load doet er een (tab 0), de TabBar-onTap indexeert op i en
doet per tab-tik precies een. Een schermopening kost dus een fetch, en in
Amsterdam is dat een HTTP-request. Rate limit van 100/10s was ruim voldoende.

114 geverifieerd: alle zes de Engelse labels staan goed.
117 geverifieerd: fromSTEB(0,0,12,0) op de deelknop. 65d dicht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 11 ore fa
parent
commit
429357aa72
1 ha cambiato i file con 30 aggiunte e 6 eliminazioni
  1. 30 6
      TASKS.md

+ 30 - 6
TASKS.md

@@ -861,12 +861,8 @@ netjes** (All/Today/Weekend/This week, Go Out/Cityactivities/Culture & Info).
   merkpalet zit. **Gezet op thema-token `Secondary`** (#FF680D, de merkregel is
   "oranje is wat je aanklikt"); `#F265A0` komt nu **0×** in het hele project voor.
   Geverifieerd met een verse export én op het toestel (knop is nu oranje).
-  ⚠️ **Rest voor Bob, 10 seconden:** de knop raakt nog steeds de rechter
-  schermrand. `EventCurrent` → widget tree filteren op `IconButton` → de
-  `IconButton` onder `Row > Tooltip` → sectie **Padding** → **R = 12**. Claude
-  komt niet bij dat veld: het ligt tegen de rechter paneelrand, drie pogingen
-  landden niet en één klik opende per ongeluk de variabele-binder (zonder iets
-  te binden — netjes geannuleerd).
+  ✅ **Padding AF (Bob, 2026-09-19)** — export-geverifieerd:
+  `Padding(fromSTEB(0.0, 0.0, 12.0, 0.0))` om de deelknop. 65d is daarmee dicht.
 - **65e · "Datum" blijft Nederlands in de Engelse modus.** Het label van de
   kalenderknop komt uit de `valueOrDefault`-default `'Datum'` en is dus géén
   vertaalsleutel. Hoort bij P1-17.
@@ -1280,6 +1276,34 @@ horeca-overzicht niet gewoon alfabetisch moet.
 
 </details>
 
+### 📌 Het horeca-overzicht laadt AL lazy — één fetch bij openen, niet zes
+
+**Gemeten 2026-09-19 op de export; dit corrigeert een eerdere bewering van Claude
+in deze sessie ("tot 60 requests per schermopening").** Die telling was fout: er
+staan zes `fetchAlleHorecagelegenheden`-aanroepen in
+`horecagelegenheden_overzicht_current_widget.dart`, maar ze worden niet samen
+uitgevoerd.
+
+- **On Page Load** (regel 55, `addPostFrameCallback`) doet er **één** — tab 0
+  (`horcat 17969`, Activiteiten, `services_1`).
+- De **TabBar** heeft `onTap: (i) async { [ () async {}, …vijf closures… ][i]() }`
+  — dus per tab-tik precies één fetch, en tab 0 doet niets omdat die al geladen is.
+
+**Een schermopening kost dus één `fetchAlleHorecagelegenheden`**, en die loopt
+door API-pagina's van 100 tot `maxPaginas = 10`. In Amsterdam heeft tab 0
+(Activiteiten) 42 items → **één HTTP-request**. De 60 uit die eerdere schatting
+komt in de praktijk nooit voor.
+
+**Gevolg voor de rate limit:** 100 requests per 10 s is ruim voldoende; de
+verhoging naar 200 was niet nodig (schaadt ook niet).
+
+**Wat er wél nog te winnen valt, klein:** elke tab-tik doet een **verse** fetch,
+ook als je terugkeert naar een tab die je al bezocht hebt. Heen-en-weer klikken
+tussen zes tabs haalt dus zes keer opnieuw op. Een guard ("sla de fetch over als
+`alleXxx` al gevuld is") lost dat op, maar kost een conditie in vijf
+actieketens — en juist die dialoog is op deze pagina fragiel. **Niet gebouwd;
+alleen doen als het in de praktijk hindert.**
+
 ### P2-24 · Restpunten horeca-zoekfilter · Eigenaar: Bob
 
 **✅ Stand 2026-09-19 (verse export, Claude):** **A is af** (alle zes de