|
|
@@ -2,6 +2,20 @@
|
|
|
|
|
|
### 🔧 Verbindingsmelding in de header — Eigenaar: Bob — bezig (2026-09-13)
|
|
|
|
|
|
+⚠️ **Observatie Claude 2026-09-13 ±20:08 (verse export van 20:02, profile-build
|
|
|
+op de telefoon-emulator): de header is volledig LEEG — geen hamburger, geen
|
|
|
+logo, online én offline.** `home_widget.dart` is byte-identiek aan de
|
|
|
+nulmeting; alleen `header_buttons_component_widget.dart` verschilt: de oude
|
|
|
+`Align > Row` zit nu in een `Column(mainAxisSize: max)` met daaronder een
|
|
|
+`SizedBox(200×40) > VerbindingsBanner`. Vermoedelijke oorzaak: in die Column
|
|
|
+krijgt de Row een **onbegrensde hoogte** (Home zet het component als
|
|
|
+`FlexibleSpaceBar.background` in een `PreferredSize(50)`-AppBar), en met het
|
|
|
+200×200-logo erin gaat dat in een profile-build stil op zwart. Geen fout in
|
|
|
+`logcat`, `dart analyze` 0 errors — het is een layout-exceptie tijdens de
|
|
|
+build. Suggestie: Column op **Main Axis Size = Min**, en de Row een vaste
|
|
|
+hoogte geven (of het logo begrenzen); daarna even op een toestel kijken.
|
|
|
+Kan ook zijn dat dit een tussenstand is die je al gezien hebt.
|
|
|
+
|
|
|
Bob's keuze 2026-09-13: niet elke pagina aanpassen, maar **één melding in de
|
|
|
header**, gevoed door een App State-vlag die de app zelf zet. Claude heeft de
|
|
|
custom code geschreven en live getest op emulator-5556 (eigen profile-build,
|
|
|
@@ -95,26 +109,43 @@ blok ís de gecrashte widget (bevinding C hieronder). De banner maakt het alleen
|
|
|
verklaarbaar in plaats van kapot. De vier crashplekken blijven dus een aparte
|
|
|
taak.
|
|
|
|
|
|
-### 🛠 Bevinding C · offline-crash op Home/P-Uitgaan-slider — Eigenaar: Claude — bezig (2026-09-13 20:10, Bob akkoord)
|
|
|
-
|
|
|
-Aanpak: geen herbouw naar custom action, maar een **Predefined Path** op de
|
|
|
-API-call (`items` = `$[:]`, is-list) en Generate Dynamic Children daaraan
|
|
|
-binden. FlutterFlow genereert dan `XCall.items(jsonBody)?.toList() ?? []` —
|
|
|
-null-veilig, in tegenstelling tot `getJsonField(jsonBody, r'$').toList()`.
|
|
|
-Plekken: `HomeSliderCall` (Home-slider), `UitgaanSliderCall` (P-Uitgaan-slider),
|
|
|
-`HorecagelegenheidoverzichtCall` (horeca tab 6 — herbinding daar is voor Bob,
|
|
|
-Claude komt niet in dat paneel op die pagina).
|
|
|
-**Stand 20:05:** de drie `items`-paths staan erin (exportgeverifieerd, 3×
|
|
|
-`static List? items`), nog nergens gebruikt. De herbinding van Generate Dynamic
|
|
|
-Children is NIET gedaan — Bob meldde dat hij zelf aan de offline-crash bezig is
|
|
|
-(verbindingscheck); Bob gaf 20:10 akkoord om dit ernaast te doen.
|
|
|
+### ✅ Bevinding C · offline-crash op Home/P-Uitgaan-slider — AFGEROND 2026-09-13 (Claude, builder + live offline-test); restpunt tab 6 voor Bob
|
|
|
+
|
|
|
+**Wat er gedaan is (exportgeverifieerd, `dart analyze` 0 errors):**
|
|
|
+- Op `HomeSlider`, `UitgaanSlider` en `Horecagelegenheidoverzicht` (API Calls →
|
|
|
+ Response & Test) een JSON Path **`items` = `$[:]`, Is List aan** toegevoegd →
|
|
|
+ `static List? items(dynamic response)` in `api_calls.dart`.
|
|
|
+- Generate Dynamic Children van de Carousel op `HomeUitgaanSliderComponent` en
|
|
|
+ `PUitgaanSliderComponent` herbonden naar **Predefined Path → items**. De
|
|
|
+ export genereert nu `(XCall.items(jsonBody)?.toList() ?? []).take(12)` in
|
|
|
+ plaats van `getJsonField(jsonBody, r'$').toList()` — null-veilig bij een
|
|
|
+ mislukte call (`jsonBody == null`), bij een foutpagina-object én bij `[]`.
|
|
|
+ Bij een fout toont de slider gewoon zijn bestaande lege-lijst-afbeelding en
|
|
|
+ blijven de tabs eronder staan; Bob's verbindingsbanner erboven zegt waarom.
|
|
|
+
|
|
|
**Terugdraaien bij calamiteit (per component één dialoog):** Carousel
|
|
|
-selecteren → Generate Dynamic Children (4e icoontje) → Value-icoontje → Set
|
|
|
-from Variable → de eigen Backend-Query-response (`HomeSlider Response` resp.
|
|
|
-`UitgaanSlider Response`) → Available Options **"No Further Changes"** →
|
|
|
-Confirm → Save. Dat is exact de oude binding; nulmeting-export van vóór alle
|
|
|
-wijzigingen staat in `/tmp/ff-checkN0`. De drie `items`-JSON-paths mogen
|
|
|
-gewoon blijven staan, die doen ongebruikt niets.
|
|
|
+selecteren → Generate Dynamic Children (4e icoontje) → klik op de Value-tekst
|
|
|
+(niet het potlood) → dialoog: Available Options **"JSON Path"** → JSON Path
|
|
|
+**`$`** → tweede Available Options **"No Further Changes"** → Confirm → Save
|
|
|
+in het rechterpaneel. Dat is exact de oude binding. Nulmeting-export van vóór
|
|
|
+alle wijzigingen: `/tmp/ff-checkN0`. De drie `items`-paths mogen blijven
|
|
|
+staan; ongebruikt doen ze niets.
|
|
|
+
|
|
|
+**Live getest op de telefoon-emulator (profile-build van de verse export,
|
|
|
+`svc wifi/data disable`):** geen `NoSuchMethodError` meer in de log; de slider
|
|
|
+toont offline het logo (lege-lijst-fallback) en de tabs eronder blijven staan
|
|
|
+met hún lege-staat-logo. Online: slider met kaarten, tabs gevuld, log schoon.
|
|
|
+⚠️ Let op bij een eigen test: een `export-code` zónder `--include-assets` mist
|
|
|
+`logo800px.png`, en dan zie je alsnog een grijs blok dat níét van deze bug is
|
|
|
+(zie `CLAUDE.md`).
|
|
|
+
|
|
|
+**Nog open, voor Bob:** `horecagelegenhedenOverzichtCurrent` tab 6 (Verhuur,
|
|
|
+catering), `StaggeredView` → Generate Dynamic Children → zelfde herbinding
|
|
|
+naar **Predefined Path → items** (de path staat al op de call). Dat paneel
|
|
|
+schrijft in Claude's browser op die pagina niet weg. De zes treffers op
|
|
|
+`horecagelegenhedenOverzichtProvinciePage` en die op
|
|
|
+`SliderUitgaanComponentSmallCurrent` blijven bewust liggen: geen enkele knop
|
|
|
+navigeert daarheen / nul gebruikers.
|
|
|
|
|
|
### 🐞 Nieuw gevonden 2026-09-13 (Claude, code-audit op verse export)
|
|
|
|