|
|
@@ -46,11 +46,7 @@ klopt sinds je 'm las.*
|
|
|
2026-09-18 op Bob's vraag. Teksten NL+EN staan kant-en-klaar in het blok
|
|
|
hieronder; alleen nog plaatsen in de builder. Pak dit samen met taak 87 op,
|
|
|
die overlapt met de regel bij "Uw Horecagelegenheid".
|
|
|
-9. **97c · null-veiligheid herstellen op de provincie-horeca-pagina** —
|
|
|
- regressie uit taak 97, zie het blok verderop. Klein, maar het is een crash.
|
|
|
-10. **97d · Engelse vertaling van de hint "Zoek op naam"** op diezelfde pagina
|
|
|
- (sleutel `nm6s2mkp`, `en` is leeg).
|
|
|
-11. ~~97 · zoekveld provincie-horeca~~ — **AF 2026-09-19** (Bob gebouwd,
|
|
|
+9. ~~97 · zoekveld provincie-horeca~~ — **AF 2026-09-19** (Bob gebouwd,
|
|
|
export-geverifieerd, commit `9344bb7`) — besluit Bob 2026-09-18.
|
|
|
Zie blok verderop.
|
|
|
|
|
|
@@ -6652,38 +6648,25 @@ kranten-uitstraling.
|
|
|
|
|
|
|
|
|
|
|
|
-### 97c · null-veiligheid herstellen na het zoekveld (provincie-horeca)
|
|
|
+### Horeca-overzichten — stand 2026-09-19
|
|
|
|
|
|
-*Taak 97 zelf is af (commit `9344bb7`): zoekveld bovenaan, On Change → Rebuild
|
|
|
-Page met 2000 ms debounce, 6× `filterHorecagelegenheden`. Dit is het restpunt.*
|
|
|
+*94, 95, 96, 97, 97c en 97d zijn allemaal af (commits `d9c4ccb`, `32843e9`,
|
|
|
+`9344bb7`, `5473b2a`). Wat er nog ligt:*
|
|
|
|
|
|
-**Het probleem.** De binding van het argument `items` levert per tab dit op:
|
|
|
+**Zoekgedrag is nu verschillend tussen de twee pagina's — keuze voor Bob.**
|
|
|
+De provincie-pagina zoekt sinds 2026-09-19 pas **op Enter** (`onFieldSubmitted`),
|
|
|
+omdat de API-call daar rechtstreeks in de `FutureBuilder` zit zonder cache: bij
|
|
|
+realtime zoeken kostte elke toetsaanslag zes calls. De **gemeente**-pagina staat
|
|
|
+nog op **realtime** (`onChanged` + 2000 ms `EasyDebounce`); die filtert lokaal op
|
|
|
+page-state-lijsten en kost dus niets. Functioneel allebei prima, maar twee bijna
|
|
|
+identieke pagina's die anders reageren is verwarrend. Gelijktrekken is één
|
|
|
+handeling: TextField → Actions → trigger-dropdown van *On Change* naar
|
|
|
+*On Submit* (de actie eronder blijft staan).
|
|
|
|
|
|
-```dart
|
|
|
-HorecagelegenheidoverzichtCall.items(response.jsonBody)!.toList()
|
|
|
-```
|
|
|
-
|
|
|
-Let op de **`!`**. Vóór taak 97 stond er `...?.toList() ?? []` — null-veilig.
|
|
|
-`ApiManager` geeft bij élke exception een respons met `jsonBody == null`, dus
|
|
|
-`items()` levert dan `null` en de `!` gooit: **de pagina crasht zodra één van de
|
|
|
-zes calls mislukt** (offline, server down). 6× in het bestand.
|
|
|
-
|
|
|
-Oorzaak: de parameter `items` van `filterHorecagelegenheden` is `List<dynamic>`
|
|
|
-(non-nullable), en dan forceert FlutterFlow met `!`. De gemeente-pagina heeft dit
|
|
|
-niet, want die geeft een page-state-lijst door die altijd non-null is.
|
|
|
-
|
|
|
-**De fix — twee kleine stappen in Custom Code → `filterHorecagelegenheden`:**
|
|
|
-1. Bij het argument **`items`**: **Nullable** aanvinken (`List<dynamic>?`).
|
|
|
-2. In de body, de enige plek waar `items` gebruikt wordt (±regel 40):
|
|
|
- `return items.where((item) {` → `return (items ?? []).where((item) {`
|
|
|
-3. **Ctrl+S** — zonder die toetsaanslag haalt de wijziging de export niet.
|
|
|
-
|
|
|
-De zes bindingen hoeven niet opnieuw: het argument houdt zijn naam, FlutterFlow
|
|
|
-laat de `!` daarna vanzelf weg. De gemeente-pagina blijft werken (een non-null
|
|
|
-lijst past gewoon in een nullable parameter).
|
|
|
-
|
|
|
-**Verificatie:** in een verse export moet
|
|
|
-`grep -c ")!$" <provincie-pagina>_widget.dart` **0** geven (nu 6).
|
|
|
+**`HorecagelegenhedenOverzichtProvinciePageCopy` opruimen · Eigenaar: Bob.**
|
|
|
+Tijdens taak 97 is een kopie van de provincie-pagina ontstaan (vangnet). Hij
|
|
|
+staat in `nav.dart` en in de paginalijst. Weggooien kan zodra je tevreden bent.
|
|
|
+(Claude verwijdert zelf nooit iets — staande regel.)
|
|
|
|
|
|
**Los restpunt (geen eigen nummer, klein):** `PUitgaanPage` zet
|
|
|
`HeaderButtonsComponent` in de **`title`**-slot van de AppBar, terwijl élke
|