|
|
@@ -100,6 +100,56 @@ de website-homepage; `/nl/user/register` is anoniem bereikbaar (200).
|
|
|
`https://uitgaanskrant.com/nl/support/mobieleapp` laten wijzen (sectie "Je
|
|
|
account verwijderen"). (a) is netter, (b) is 1 minuut.
|
|
|
|
|
|
+- **74 · P1-62 · De evenementen-agenda op een horecapagina is op een telefoon
|
|
|
+ onleesbaar: de items lopen over elkaar heen. Eigenaar: onbepaald (zie de
|
|
|
+ waarschuwing hieronder) — gevonden 2026-09-16 laat (Claude, profile-build op
|
|
|
+ emulator-5556, 411 dp).** Screenshot:
|
|
|
+ `~/uk-shots/2026-09-16/bug-horeca-agenda-gridview.png` (zaak Bitterzoet,
|
|
|
+ Info-tab).
|
|
|
+ **Oorzaak, hard:** `horecagelegenheid_event_tabel_component_copy_widget.dart`
|
|
|
+ r.172-178 is een `GridView.builder` met **`crossAxisCount: 2`** en
|
|
|
+ **`childAspectRatio: 3.0`**. De celhoogte volgt daarmee de celbreedte:
|
|
|
+
|
|
|
+ | scherm | cel | hoogte |
|
|
|
+ |---|---|---|
|
|
|
+ | telefoon 411 dp | 188 dp breed | **63 dp** |
|
|
|
+ | tablet staand 800 dp | 383 dp | 128 dp |
|
|
|
+ | tablet liggend 1280 dp | 623 dp | 208 dp |
|
|
|
+
|
|
|
+ De inhoud van zo'n cel (afbeelding van 60 dp + titel over meerdere regels +
|
|
|
+ datum + categorielabels) heeft er ~180 nodig. Op een telefoon tekent elke kaart
|
|
|
+ dus ver buiten zijn cel en over de volgende rij heen. Op een tablet valt het
|
|
|
+ mee — daarom is het nooit opgevallen.
|
|
|
+ ⚠️ **En het meldt zichzelf niet:** géén gele overflow-streep, niets in
|
|
|
+ `dart analyze`, niets in `logcat`. Een `GridView`-cel klipt niet, dus Flutter
|
|
|
+ ziet geen fout. Alleen een screenshot op telefoonformaat laat het zien.
|
|
|
+ **Recept (staat al in `CLAUDE.md`):** `GridView` → **StaggeredView**, met
|
|
|
+ `Cross Axis Count` als Responsive Value **1/1/2/3**. Een StaggeredView geeft
|
|
|
+ elk kind zijn eigen hoogte en kent `childAspectRatio` niet eens — precies
|
|
|
+ waarom Home en het horeca-overzicht die al gebruiken. Let op het
|
|
|
+ pagination-recept in `CLAUDE.md` als er Infinite Scroll op zit (hier niet: het
|
|
|
+ is een gewone `GridView.builder` op een `FutureBuilder`).
|
|
|
+ ⚠️ **Niet zomaar oppakken:** dit component hangt aan `HorecagelegenheidCurrent`,
|
|
|
+ en daar zit P2-35 al op een andere sessie. Stem af wie 'm doet.
|
|
|
+ *Niet nieuw:* de instelling staat er al sinds vóór `bfeb0db`, dus dit is geen
|
|
|
+ regressie van de look&feel-ronde van 16 sep.
|
|
|
+
|
|
|
+- **75 · Drie events per 92 hebben `categorie: null` — de agenda-code rekent
|
|
|
+ daar niet op. Eigenaar: onbepaald, klein.** Gevonden bij dezelfde controle:
|
|
|
+ `flutterflowmobiel_establishment_events` gaf op 92 events van 120 Amsterdamse
|
|
|
+ zaken **3× `"categorie": null`** (alle drie bij horecanid 75457,
|
|
|
+ Natuurtheater Zeddam). Dezelfde regel als hierboven doet
|
|
|
+ `getJsonField(evenementenItem, r'$.categorie').toList()` **zonder** de
|
|
|
+ lijst-forcering, en `.toList()` op `null` gooit een `NoSuchMethodError`. In een
|
|
|
+ profile-build is dat een stil grijs vlak op die plek.
|
|
|
+ **Fix:** in de builder bij *Generate Dynamic Children* het derde argument
|
|
|
+ (Is List) aanzetten, zodat de export `getJsonField(..., true)` genereert —
|
|
|
+ precies zoals `mijn_profiel`, `p_uitgaan_slider_component` en `thuisBezorgen`
|
|
|
+ het al doen voor hetzelfde veld. Meeliften op taak 74, zelfde component.
|
|
|
+ *Ter info:* dezelfde constructie op `home_uitgaantabel_kaart_component`
|
|
|
+ r.664 is wél veilig — daar is `$.categorie` op alle zeven Home-displays
|
|
|
+ gemeten en altijd een lijst.
|
|
|
+
|
|
|
**🟠 Vóór livegang, één ronde**
|
|
|
|
|
|
- **65 · P1-59 · Release-build smoke-test op beide AVD's + Bob's Xiaomi.
|