|
|
@@ -340,6 +340,92 @@ met het logo op ~55 % van de breedte op een **transparant** vlak, dan doet
|
|
|
|
|
|
---
|
|
|
|
|
|
+### 🆕 103 · Header toont de verkeerde locatie + "(gemeente)" weg · Eigenaar: Bob (keuze) → Claude (bouwen)
|
|
|
+
|
|
|
+Twee dingen die dezelfde `Text` in `HeaderButtonsComponent` raken; daarom samen.
|
|
|
+Ontdekt tijdens het schieten van de Play-screenshots (2026-09-19).
|
|
|
+
|
|
|
+**Meting 1 — de header toont ALTIJD de gemeentenaam.** `HeaderButtonsComponent`
|
|
|
+regel 239 bindt hard aan `FFAppState().gemeenteSelectNaam`. En:
|
|
|
+`provincieSelectName` wordt in de hele levende code **wel gezet, nergens
|
|
|
+getoond** (3 schrijfplekken, 0 leesplekken). Antwoord op Bob's vraag "staat er bij
|
|
|
+provincie wel provincie?": **nee.**
|
|
|
+
|
|
|
+Waar dat misgaat:
|
|
|
+| pagina | content is | header zegt |
|
|
|
+|---|---|---|
|
|
|
+| **Home** | **landelijk** — geeft alleen `displayid` door, géén `townid` | `Amsterdam (gemeente)` ❌ |
|
|
|
+| **PUitgaanPage via Provincie-menu** | provincie (`plaats: provincieSelectId`) | `Amsterdam (gemeente)` ❌ |
|
|
|
+| PUitgaanPage via Gemeente-menu | gemeente | klopt ✅ |
|
|
|
+| horeca, detailpagina's | gemeente | klopt ✅ |
|
|
|
+
|
|
|
+Beide menugroepen gaan naar **dezelfde** pagina (`PUitgaanPage`), alleen met een
|
|
|
+andere `plaats`-parameter — die pagina weet dus zelf niet wat hij toont.
|
|
|
+
|
|
|
+**Meting 2 — "(gemeente)" zit NIET op alle namen.** Alle 12 provincies uitgelezen,
|
|
|
+385 gemeenten:
|
|
|
+- **235x** exact `" (gemeente)"` → kan schoon weg
|
|
|
+- **148x** helemaal geen haakjes (Almere, Noordoostpolder, Aa en Hunze)
|
|
|
+- **2x** `" (gemeente NH)"` / `" (gemeente LB)"` — ⚠️ **die suffix is betekenisvol**:
|
|
|
+ er zijn twee gemeenten Bergen. Kaal strippen geeft twee identieke regels in de
|
|
|
+ dropdown.
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+**VOORSTEL A — "(gemeente)" weg. In Drupal, niet in de app.**
|
|
|
+
|
|
|
+Eén bewerking op `gemeentename` in `plaatsen.json`:
|
|
|
+- `" (gemeente)"` -> `""` (235 namen)
|
|
|
+- `" (gemeente "` -> `" ("` (2 namen: `Bergen (gemeente NH)` -> `Bergen (NH)`)
|
|
|
+- de 148 zonder haakjes blijven ongemoeid
|
|
|
+
|
|
|
+*Waarom aan de Drupal-kant:* de naam wordt op twee plekken getoond (de
|
|
|
+gemeente-dropdown én de header) maar komt uit één bron. Eén functie daar dekt
|
|
|
+allebei, en er komt geen custom function bij die Claude later niet meer mag
|
|
|
+weggooien. Kost geen app-wijziging en geen export.
|
|
|
+⚠️ `gemeenteSelectNaam` staat in secure storage, dus een bestaande installatie
|
|
|
+houdt de oude naam tot de gebruiker opnieuw kiest. Bij een nog niet gepubliceerde
|
|
|
+app irrelevant.
|
|
|
+
|
|
|
+**VOORSTEL B — de header laten kloppen. 2 pagina's, niet 19.**
|
|
|
+
|
|
|
+De header staat op **19** pagina's; de truc is dat de defaults de overige 17
|
|
|
+ongemoeid laten.
|
|
|
+
|
|
|
+1. Twee **optionele** parameters op `HeaderButtonsComponent`:
|
|
|
+ `landelijk` (Boolean, **default false**) en `plaatsId` (String, optioneel).
|
|
|
+2. Eén custom function, plat geschreven (geen geneste closures — zie `CLAUDE.md`):
|
|
|
+ ```dart
|
|
|
+ String headerLocatie(bool? landelijk, String? plaatsId, String? provincieId,
|
|
|
+ String? provincieNaam, String? gemeenteNaam) {
|
|
|
+ if (landelijk == true) return 'Heel Nederland';
|
|
|
+ if (plaatsId != null && plaatsId.isNotEmpty &&
|
|
|
+ plaatsId == provincieId &&
|
|
|
+ provincieNaam != null && provincieNaam.isNotEmpty) return provincieNaam;
|
|
|
+ if (gemeenteNaam != null && gemeenteNaam.isNotEmpty) return gemeenteNaam;
|
|
|
+ return 'Kies je gemeente';
|
|
|
+ }
|
|
|
+ ```
|
|
|
+ 5 argumenten — precies de grens die volgens `CLAUDE.md` bewezen volledig
|
|
|
+ bereikbaar is in "Set Function Arguments".
|
|
|
+3. Binden op de `Text` in de header (vervangt de huidige `valueOrDefault`).
|
|
|
+4. **Home**: `landelijk` = true. **PUitgaanPage**: `plaatsId` = de bestaande page
|
|
|
+ parameter `plaats`. Verder niets.
|
|
|
+
|
|
|
+Resultaat: Home -> *Heel Nederland* · Provincie-menu -> *Noord-Holland* ·
|
|
|
+Gemeente-menu en alle andere pagina's -> *Amsterdam* · niets gekozen ->
|
|
|
+*Kies je gemeente*.
|
|
|
+
|
|
|
+⚠️ **Eerlijke kanttekening:** "Heel Nederland" komt uit een custom function en
|
|
|
+gaat dus **niet** door `FFLocalizations` — in de Engelse modus blijft die ene
|
|
|
+tekst Nederlands. Zelfde categorie als 65e; hoort bij P1-17.
|
|
|
+
|
|
|
+**Goedkopere variant als B te veel is:** alleen `landelijk` doen (1 parameter,
|
|
|
+1 pagina, geen `plaatsId`). Dan klopt Home — het scherm dat iedereen als eerste
|
|
|
+ziet — en blijft alleen het provincie-geval scheef.
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
### 🔧 Kleine open restpunten (app)
|
|
|
|
|
|
*(P2-45b, P2-45c en 76 zijn op 2026-09-19 afgerond en geverifieerd met een
|
|
|
@@ -383,8 +469,9 @@ die twee niet meer los afwerken. Vink hier af.*
|
|
|
Play service-account-JSON; pas doen als handmatig uploaden gaat vervelen.
|
|
|
⚠️ Blijft staan als G4.3: controleer het icoon op het AAB dat je uploadt.
|
|
|
- [x] **G0.4 — ✅ BESLOTEN (Bob, 2026-09-19): alleen Android, iOS later.**
|
|
|
- Wat iOS extra zou kosten staat in het blok "iOS — wat er extra bij komt"
|
|
|
- onderaan deze checklist.
|
|
|
+ **Bob 2026-09-19, definitief:** *"fuck ios. we gaan eerst een android app
|
|
|
+ bouwen. Als die geld oplevert, gaan we naar apple."* Niet opnieuw agenderen;
|
|
|
+ wat het zou kosten staat in het blok "iOS — wat er extra bij komt".
|
|
|
- [x] **G0.5 — ✅ CONCEPT KLAAR (Claude, 2026-09-19), akkoord Bob.** Drie varianten
|
|
|
korte omschrijving (70/75/71 tekens) + lange omschrijving (1585 van 4000),
|
|
|
opgebouwd uit de echte functielijst (drawer + Home-tabs). Bob's aanvullingen
|