Browse Source

132-D/E/L + Favorieten-tabnaam af; ProvinciePage lege-lijst naar Bob

- 132-D: 4 foute EN-labels gefixt (Delivery / Delivers to / Payment options / Agenda)
- 132-E: agenda-knop + categorie-Wrap op EventCurrent en hartje op
  HorecagelegenheidCurrent rechts 12
- 132-L: provincieSelectName leest $.parent_titel
- tabnaam Favorieten: "Favoriete gelegenheden" / "Favourite venues"
- 132-G: ProvinciePage tab 4 staat; tab 1/2/3/5/6 met stappenplan naar Bob;
  Favorieten D1-D3 bleken al af
- CLAUDE.md: gefilterde boom kan onderaan staan, canvas wisselt niet van tab

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bob 16 giờ trước cách đây
mục cha
commit
b38b9017a0
2 tập tin đã thay đổi với 51 bổ sung31 xóa
  1. 17 0
      CLAUDE.md
  2. 34 31
      TASKS.md

+ 17 - 0
CLAUDE.md

@@ -1490,6 +1490,23 @@ app compileert dan niet meer, dus dit is een harde blokkade en geen ruis.
   regel. Commit in de tussentijd géén `lib/` — anders staat er een
   niet-compileerbare staat op master.
 
+**⚠️ Een GEFILTERDE widget-boom kan naar zijn ONDERKANT gescrold staan, en het
+canvas wisselt NIET van tab als je een widget in een `TabBar Page` selecteert —
+bepaal de tabvolgorde dus uit de export, niet uit wat je ziet.** Bevestigd
+2026-09-23 op `HorecagelegenhedenOverzichtProvinciePage`: filter `StaggeredView`
+toonde drie van de zes groepen, en dat bleken tab 4-6 (de boom was naar de laatst
+geselecteerde node gescrold). Root selecteren, filter wissen/hertypen en de
+scrollbar slepen brachten 'm niet terug naar boven; het canvas bleef intussen
+gewoon op tab 1 staan. Resultaat: een lege-lijst-melding met de tekst van tab 1
+op tab 4. **Controleer ná de eerste wijziging meteen met een export op welke
+regel hij landde** (`grep -n "nlTekst:" <widget>.dart` naast de `horcat:`-regels)
+vóór je de rest van de reeks doet. Werkte wél: **Widget Type / Component /
+Parameter als eigenschappen-filters** — elk toont precies de rij die je nodig
+hebt (dropdown Image→Component, knop *Select Component*, de parameterrijen
+`nlTekst *`/`enTekst *`), dus geen sectie-inklap-gevecht. Chrome stond die sessie
+bovendien onverwacht op ±140 % zoom (drie tree-groepen in beeld i.p.v. zes);
+vraag Bob om `Ctrl+0` zodra de builder er opeens veel groter uitziet.
+
 **Een sectie in een "Set from Variable"-bronnenlijst rendert zijn suboptie
 pas na 8-15 seconden — blijf niet klikken, want elke klik klapt 'm weer
 dicht.** Scherpere vervanger van de hover-truc hieronder, bevestigd

+ 34 - 31
TASKS.md

@@ -31,7 +31,6 @@ Google Play en één doorloop die alleen Bob kan doen.
 | **133** | Kopie-knop verkleinen — **AF**, één restpunt voor Bob | Variant A (icoonknop in de rij) op `mijnProfiel` 2×, variant B (oranje chip) op `MijnAanmeldingen`, tooltips op long-press, kleuren op thema-tokens. Geverifieerd met een verse export, 0 analyse-errors. **Rest: 2 Engelse tooltipteksten** die Claude via de globe niet kon corrigeren — zie het 133-blok onderaan |
 | **136** | Taalkeuze onder Mijn Profiel | **AF** (2026-09-23), op één verificatie na. **(1)** App Settings -> Languages -> **Persist Selection** staat aan; export bevestigt `await FFLocalizations.initialize()`, `Locale? _locale = FFLocalizations.getStoredLocale()` en `FFLocalizations.storeLocale(language)` in `main.dart` — zonder die drie overleefde een keuze het afsluiten niet. **(2)** In de **Account**-tab van `mijnProfiel` (`ColumnTab3`) staat nu, tussen `userName` en "Wachtwoord wijzigen": een `Text` **"Taal / Language"** (Body Small, Secondary Text, NL+EN beide gevuld, sleutel `zlpb2nvy`) plus **`FlutterFlowLanguageSelector`** met `hideFlags: false` (vlag erbij, want zonder label/vlag leest "Nederlands" in deze app als een plaatskeuze — Home toont "Heel Nederland"). Export: `currentLanguage: FFLocalizations.of(context).languageCode`, `languages: FFLocalizations.languages()`, `onChanged: (lang) => setAppLanguage(context, lang)`; `dart analyze` 0 errors. ⏳ **Nog te doen:** één verse export ter bevestiging van de EN-vertaling — die stap is alleen in de builder-UI geverifieerd (globe toont na een volledige paginaherlaad NL én EN op "Taal / Language"), omdat de export sinds ~15:00 projectbreed geblokkeerd is, zie de regel hieronder. ⏳ **En: testen op een toestel** — Claude kan dat niet, `mijnProfiel` vereist ingelogd zijn. Zet de app op Engels, sluit hem af (`force-stop`) en start opnieuw: de keuze hoort te blijven staan. ⚠️ Blijft Nederlands ook in de EN-UI: de content zelf, de server-geformatteerde `datum` (alle API-URL's zijn hardcoded `/nl/`, 10 bindingen in levende code), de 5 `LegeLijstComponent`-teksten (parameterwaarden, geen i18n-sleutel) en Drupal-foutmeldingen |
 | **136-blokkade** | ⚠️ Export projectbreed geblokkeerd (23-09 ~15:00) | **Eigenaar: wie aan taak 133 werkt.** `flutterflow export-code` faalt met `Status: 400` — vier keer achter elkaar, dus geen serverhikje. Issues -> Errors toont **"Widget Configuration — Tooltip cannot have a Button as a descendant"**, en een klik daarop springt naar **`MijnAanmeldingen`** -> de `Tooltip` om de oranje **Kopie**-knop. Dat is taak 133-werk, niet van taak 136. De andere drie errors (2× Property Override + 1 Custom Function) blokkeerden niet: met alleen die drie slaagde de export vandaag nog. **Fix:** de knop uit de `Tooltip` halen (of de tooltip op een niet-Button-ouder zetten). Zolang dit staat ligt élke sessie stil bij het verifiëren |
-| **132-G/D/E/L + tabnaam** | ProvinciePage 6 lege-lijst-meldingen · 4 foute EN-labels · agenda-knop-padding + hartje · `parent_titel`-binding · tabnaam Favorieten | **Claude — bezig** (2026-09-23 13:45, sessie 909fc0fd). Raakt `Favorieten`, `HorecagelegenhedenOverzichtProvinciePage`, `EvenementHorecagelegenheid`, `HorecagelegenheidCurrent`, `EventCurrent` — niet de aanmaakpagina's of `mijnProfiel` |
 | **G0.6** | Play-screenshots | ✅ Nieuwe set van 10 klaar (2026-09-19 avond). Alleen `tel-04-horeca.png` moet over zodra *Show Test Ads* uit staat |
 
 | **112** | Restje zoek-stad: lege API-call opruimen | **Eigenaar: Bob.** `SelectStateDropDownComponent` → Actions → On Page Load → *Conditional Action 5* (`gemeenteSelectId is set/non-empty`) → TRUE-tak → **Action 13, Custom Action `drupalRequest`** met url/sessionName/sessionId/token/body allemaal Unset. Staat sinds 2026-09-20 op **disabled**; kan weg via ⋮ → Delete Action. Vlak eronder staat **Conditional Action 16** (`apiGemeenteResultInitalize -> Succeeded`) met twee lege takken — mag in dezelfde moeite weg |
@@ -434,22 +433,16 @@ Wat er moet gebeuren, en waarom het niet triviaal is:
 Pas ná deze wijziging klopt de introtekst (`rupw26n4`) met de werkelijkheid. De
 tekst zelf hoeft dus **niet** aangepast; wel controleren zodra de backend om is.
 
-### 132-D · Vier Engelse labels staan op de verkeerde tekst (`Duplicate`-erfenis)
+### 132-E · Rechts uitgelijnde elementen — ✅ AF (Claude 2026-09-23, export-geverifieerd)
 
-| bestand | sleutel | nl | en (fout) |
-|---|---|---|---|
-| `evenement_horecagelegenheid_widget.dart:1253` | `jxlwje5u` | Bezorgen | Opening hours |
-| idem `:1465` | `usg8k534` | Bezorgt in | Opening hours |
-| idem `:1549` | `paqq93tp` | Betaalmogelijkheden | Opening hours |
-| `horecagelegenheid_current_widget.dart:529` | `jwojezxv` | Agenda | User |
-
-Verder zijn álle 219 gerenderde sleutels vertaald (0 lege `en`).
-
-### 132-E · Rechts uitgelijnde elementen missen hun rechterpadding
-
-Op `EventCurrent` raakt de **agenda-knop** exact de schermrand (de deelknop
-ernaast heeft wél ruimte), net als het categorielabel eronder. Op tablet valt
-het **favorietenhartje** op `HorecagelegenheidCurrent` zelfs half buiten beeld.
+Agenda-knop op `EventCurrent` heeft nu dezelfde rechterpadding (12) als de
+deelknop, de categorie-`Wrap` eronder rechts 12 i.p.v. 1, en het
+favorietenhartje op `HorecagelegenheidCurrent` (de `Tooltip`-node) rechts 12.
+*Bijvangst, geen taak:* elk categorielabel op `EventCurrent` zit nog in een
+`Align(1.0, 0.0)`, waardoor de labels onder elkaar rechts uitgelijnd staan i.p.v.
+naast elkaar te stromen — hetzelfde patroon als P2-34/P1-41. Alleen aanpassen
+als Bob ze liever naast elkaar wil (Alignment ↺ + Child Alignment ↺ op de
+label-container).
 
 ### 132-F · Omschrijving wordt middendoor gesneden bij meerdere categorielabels
 
@@ -577,8 +570,28 @@ inventaris, die alleen op logo's zocht.
 **Klaar: 15 instanties `LegeLijstMelding`**, alle met beide talen gevuld,
 `dart analyze` 0 errors.
 
-**1 · Nog te doen, zelfde werk als de rest — `HorecagelegenhedenOverzichtProvinciePage`, 6 tabs**
-Staat er nog met 6× `logo800px`. Zelfde zes tabs in dezelfde volgorde als
+**1 · Nog te doen — `HorecagelegenhedenOverzichtProvinciePage`, 5 van de 6 tabs · Eigenaar: Bob (besluit 2026-09-23)**
+Stand 2026-09-23 (Claude, export-geverifieerd): **tab 4 (Overnachten) staat**, met de
+juiste NL/EN-tekst. Tab 1, 2, 3, 5 en 6 staan nog op `logo800px`. Claude kwam
+niet verder: bij de zoom van het Chrome-venster toont de gefilterde boom maar
+drie van de zes tabs en scrollt niet, en de eerste poging landde daardoor op de
+verkeerde tab (inmiddels gecorrigeerd). **Exacte stappen per tab, in je eigen
+browser (5×):**
+1. Pagina openen → Widget Tree → zoekveld `StaggeredView` → de boom toont zes
+   `StaggeredView`-rijen in **tabvolgorde** (1 Activiteiten · 2 Cultuur ·
+   3 Eetgelegenheden · 4 Overnachten ✅ · 5 Uitgaan · 6 Verhuur). Klik de rij.
+2. Rechterpaneel → "Search properties..." → `Widget Type` → dropdown staat op
+   *Image* → kies **Component**.
+3. Zoekfilter → `Component` → knop **Select Component** → zoek
+   `LegeLijstMelding` → aanklikken. *Center Component* staat dan al aan.
+4. Zoekfilter → `Parameter` → rij **nlTekst** openklappen → Value → NL-tekst
+   uit de tabel in blok B hieronder → rij **enTekst** → Value → EN-tekst.
+   (Toggle "Show Empty List Widget" staat op deze pagina al aan; niets aan doen.)
+5. Controle in één keer, op een verse export:
+   `grep -c logo800px lib/horecagelegenhedenoverzicht/horecagelegenheden_overzicht_provincie_page/*_widget.dart`
+   hoort op **0** uit te komen, en
+   `grep -n "nlTekst:" -A1 <zelfde bestand>` toont de zes teksten in tabvolgorde.
+ Zelfde zes tabs in dezelfde volgorde als
 `...OverzichtCurrent`, dus de teksten uit blok B zijn één-op-één te hergebruiken
 (Bob koos voor tab 3-6 de korte variant *"Geen gelegenheden gevonden..."* /
 *"No places found..."*). Filter de tree op `StaggeredView` → zes in tabvolgorde.
@@ -656,7 +669,7 @@ deze lijsten leeg zijn.*
 |---|---|---|
 | C1 | `thuisBezorgen` | Geen bezorgdiensten gevonden in deze plaats. / No delivery services found in this town. |
 
-**D · Favorieten — hier staat de toggle nog UIT (extra stap, zie ook 132-H)**
+**D · Favorieten — ✅ AF (stond al in de export van 2026-09-23 13:45: alle drie de tabs tonen `LegeLijstMeldingWidget`; onderstaande tabel alleen nog ter referentie)**
 
 Deze drie tonen nu een volledig leeg scherm. Naast het component moet hier eerst
 *Show Empty List Widget* aangezet worden.
@@ -744,6 +757,8 @@ Engelse vertaling. Drie dingen uitgezocht:
 
 ### 132-H · Favorieten is uitgelogd een leeg scherm
 
+*Stand 2026-09-23: tab 1-3 tonen inmiddels een `LegeLijstMelding` ("Je hebt nog geen…"), dus geen leeg scherm meer — maar uitgelogd is die tekst misleidend. Rest: een inlog-uitnodiging voor de uitgelogde staat, of een verwijzing naar tab 4.*
+
 Tab 1-3 tonen niets en geen uitleg; de uitnodiging *"Met een account bewaar je
 favoriete gemeenten…"* staat op tab 4, twee tabs naar rechts. Verwijs vanaf de
 eerste tab naar die knop (of toon `LegeLijstComponent` met die tekst).
@@ -780,8 +795,6 @@ eerste tab naar die knop (of toon `LegeLijstComponent` met die tekst).
   er zelf nog in tikken.
 - **Login-melding** zegt *"Controleer je gebruikersnaam en wachtwoord"* terwijl
   het veld *E-mailadres* heet.
-- **Tabnamen inconsistent**: *Favoriete gemeenten* (kleine g) naast *Favoriete
-  Gelegenheden* (hoofdletter G).
 - **Testadvertenties staan nog aan** (zichtbaar op `PUitgaanPage` en het
   horeca-overzicht); op het horeca-overzicht legt de 468×60-banner zich over de
   onderste kaart heen. Zie ook G0.6.
@@ -816,16 +829,6 @@ de gemeenten die je volgt"*) staat er altijd en is de algemene toelichting. Met
 0 gemeenten staan er dus twee bijna gelijke regels onder elkaar — overweeg er één
 van te maken.
 
-### 132-L · `provincieSelectName` krijgt een NID i.p.v. de naam · Eigenaar: vrij
-
-`favorieten_widget.dart:548` bindt `provincieSelectName` aan `$.parent_nid` in plaats
-van `$.parent_titel`, dus in die App State staat een getal waar de provincienaam hoort.
-In `select_state_drop_down_component_widget.dart:556` staat het wél goed — vergelijk die
-twee. Eén binding omzetten.
-
-*(De rest van het oude 132-L en heel 132-M — gemeentekeuze springt naar Home, en het
-stadseditor-overzicht — zijn op 2026-09-23 door Bob laten vervallen.)*
-
 ### 132-K · `&amp;` in de categorie · ✅ GEFIXT OP DEVBOB, productie nog te doen
 
 **Stand 2026-09-22: Bob heeft beide regels handmatig aangepast op devbob;