فهرست منبع

Taak 89 af: TASKS opgeschoond, header-nuance in CLAUDE.md

Taak 89 (logo boven de gemeentenaam) verwijderd uit TASKS.md en vervangen
door 89a: de vangnet-kopie HeaderButtonsComponentCopy mag Bob weghalen.

CLAUDE.md: nuance bij de bestaande waarschuwing over de gedeelde header —
een Column OM de knoppenrij blijft fataal, maar een Column als kind van de
Wrap is veilig zolang hij onder ~44 dp blijft en op Main Axis Size = min
staat, want de regelhoogte wordt al door de knoppen bepaald.

Let op: de "P2-45 — bezig"-regel van de gelijktijdig draaiende sessie gaat
in deze commit mee (stond al ongecommit in de gedeelde working tree).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 4 ساعت پیش
والد
کامیت
37b3928e3b
2فایلهای تغییر یافته به همراه20 افزوده شده و 44 حذف شده
  1. 12 0
      CLAUDE.md
  2. 8 44
      TASKS.md

+ 12 - 0
CLAUDE.md

@@ -2439,6 +2439,18 @@ kind ván de bestaande Row, en geef het geen vaste hoogte.
   een custom widget dat zelf `SizedBox.shrink()` rendert en de melding via de
   een custom widget dat zelf `SizedBox.shrink()` rendert en de melding via de
   **`ScaffoldMessenger`** toont (zie `VerbindingsBanner` in `snippets/`). Neemt
   **`ScaffoldMessenger`** toont (zie `VerbindingsBanner` in `snippets/`). Neemt
   geen layout-ruimte in, dus het kan overal staan zonder iets te breken.
   geen layout-ruimte in, dus het kan overal staan zonder iets te breken.
+- **Nuance (2026-09-18, taak 89): een `Column` *ergens onderin* die header is
+  wél veilig — het is specifiek een Column *óm* de knoppenrij heen die fataal
+  is.** De kinderen van die header zitten in een horizontale `Wrap`, en de
+  regelhoogte daarvan wordt al bepaald door het hoogste kind: de knoppen (40 dp,
+  of 50 mét terugknop). Een extra `Column` als kind van die Wrap mag dus tot
+  ~44 dp hoog worden zonder dat de balk meegroeit. Zo zijn het logo (22 dp) en
+  de gemeentenaam (~20 dp) gestapeld tot één kind — samen ~42 dp, dus geen
+  overflow, op telefoon én op 1280 dp tablet geverifieerd met een profile-build.
+  Zet zo'n Column wel op **Main Axis Size = min**: met `max` pakt hij de volle
+  beschikbare hoogte en dán groeit de regel alsnog. Stapelen wint bovendien
+  breedte, want de tekst staat niet meer náást het logo — precies wat de Wrap
+  anders bij een lange gemeentenaam naar een tweede regel zou duwen.
 
 
 **Een datumveld dat de rauwe `2026-09-25 20:20:00.000` toont: fix het in de
 **Een datumveld dat de rauwe `2026-09-25 20:20:00.000` toont: fix het in de
 Set-Form-Field-actie, niet in het tekstveld.** Bevestigd 2026-09-13 op
 Set-Form-Field-actie, niet in het tekstveld.** Bevestigd 2026-09-13 op

+ 8 - 44
TASKS.md

@@ -29,9 +29,12 @@ klopt sinds je 'm las.*
    2026-09-18 op Bob's vraag, zie het uitgeschreven blok verderop. Feature, dus
    2026-09-18 op Bob's vraag, zie het uitgeschreven blok verderop. Feature, dus
    geen livegang-blokker; Claude kan dit zelf in de builder doen. **De Row die
    geen livegang-blokker; Claude kan dit zelf in de builder doen. **De Row die
    hij nodig heeft ligt er al** (taak 90); let wel op de chipbreedte.
    hij nodig heeft ligt er al** (taak 90); let wel op de chipbreedte.
-7. **89 · logo boven de gemeentenaam in de gedeelde header** — nieuw
-   2026-09-18 (Bob: *"bij groot scherm moet in de header de foto boven de
-   plaats"*). Eén ingreep in `HeaderButtonsComponent`, zie het blok hieronder.
+7. **89a · kopie-component `HeaderButtonsComponentCopy` opruimen · Eigenaar:
+   Bob.** Taak 89 (logo boven de gemeentenaam in de header) is **af** en
+   gecommit (`4c3f0aa`); deze kopie is vooraf op Bob's verzoek als vangnet
+   gemaakt en kan weg zodra hij tevreden is. Rechtsklik in de componentlijst →
+   *Delete Component*. Hij wordt nergens gebruikt, dus dit raakt geen pagina.
+   (Claude verwijdert zelf nooit iets — staande regel.)
 
 
 ### ✅/🔴 65 · P1-59 · Release-build gedaan 2026-09-18 (Claude, browserloos) — app draait, MAAR het app-icoon is fout
 ### ✅/🔴 65 · P1-59 · Release-build gedaan 2026-09-18 (Claude, browserloos) — app draait, MAAR het app-icoon is fout
 
 
@@ -113,45 +116,6 @@ blijven. Hoort bij dezelfde ronde als taak 79.
 (zaakpagina, hartje, login, Favorieten, evenement aanmaken, vliegtuigmodus,
 (zaakpagina, hartje, login, Favorieten, evenement aanmaken, vliegtuigmodus,
 Engels) en Bob's Xiaomi. De app is daarvoor blijven staan op emulator-5556.
 Engels) en Bob's Xiaomi. De app is daarvoor blijven staan op emulator-5556.
 
 
-### 🆕 89 · Logo boven de gemeentenaam in de gedeelde header · Eigenaar: Claude — bezig
-
-Bob 2026-09-18: *"bij groot scherm moet in de header de foto boven de plaats."*
-Gekozen eindbeeld (Bob, zelfde dag): **☰ en ← blijven links; rechts daarvan het
-logo op regel 1 met de gemeentenaam eronder** — dus niet alles gecentreerd
-gestapeld en geen groter logo.
-
-**Waar:** `HeaderButtonsComponent` (`lib/components/header_buttons_component_widget.dart`),
-de gedeelde header op **11 levende pagina's**. Nu is het één horizontale `Wrap`
-met vier kinderen naast elkaar: hamburger (40) → terugknop (50, alleen als
-`showBackButton`) → `Image.asset('assets/images/logo800px.png', 150×22)` →
-`Text(gemeenteSelectNaam)` → `VerbindingsBanner` (2×2).
-
-**De ingreep:** logo + gemeentenaam samen in één `Column` (Main Axis Size *min*,
-Cross Axis Alignment *start*) als één kind van die Wrap. De knoppen en de
-`VerbindingsBanner` blijven ongemoeid.
-
-**Hoogte — het enige echte risico.** De header zit in een
-`FlexibleSpaceBar.background` met een vaste hoogte (gemeten op de tablet-AVD:
-~72 dp inclusief de 28 dp top-padding van het component, dus ~44 dp voor de
-inhoud). De Wrap-regelhoogte wordt nu al bepaald door de knoppen (40 zonder,
-50 mét terugknop); de gestapelde kolom wordt logo 22 + tekst ~20 ≈ 42 dp en is
-dus **niet hoger dan de knoppen** — de header hoeft daarom niet mee te groeien.
-Op een pagina zónder terugknop (bv. Home, regelhoogte 40) is de marge 2 dp, dus
-**na de bouw screenshotten op zowel telefoon- als tabletformaat** en op een
-overflow-melding letten. Wordt het wél te hoog: de tekststijl een maat kleiner,
-of de top-padding van 28 naar 24.
-
-**Let op:** wrap de Wrap zélf nooit in een `Column` — dat is het bekende patroon
-dat de hamburger stil van álle pagina's laat verdwijnen (zie `CLAUDE.md`).
-
-**Bewust besluit:** de kolom geldt op élk schermformaat, niet alleen op tablet.
-Een breekpunt-variant zou logo + tekst (inclusief tap-actie naar
-`Selectprovinciegemeente` en de vertaalsleutel) dubbel in de tree zetten. Op de
-telefoon past de rij nu net; bij een langere gemeentenaam (bv. "Bergen op Zoom
-(gemeente)") breekt de Wrap daar toch al naar een tweede regel, en stapelen is
-dan juist voorspelbaarder. Wil Bob het tóch alleen op tablet: zeg het, dan wordt
-het twee varianten met responsive Visibility.
-
 ### 🆕 88 · "Mijn aanmeldingen" + kloonknop · Eigenaar: Bob (Drupal, deel A), Claude (app, deel B)
 ### 🆕 88 · "Mijn aanmeldingen" + kloonknop · Eigenaar: Bob (Drupal, deel A), Claude (app, deel B)
 
 
 Bob 2026-09-18: *"Ziet een horecagelegenheid-eigenaar of stadsrechten-eigenaar ook
 Bob 2026-09-18: *"Ziet een horecagelegenheid-eigenaar of stadsrechten-eigenaar ook
@@ -1099,8 +1063,8 @@ telefoon-emulator bekeken (zie screenshots in `~/uk-shots/2026-09-16/na-*.png`).
   (geverifieerd 2026-09-18 in `custom_functions.dart`). Vergeet bij een
   (geverifieerd 2026-09-18 in `custom_functions.dart`). Vergeet bij een
   labelwijziging de Engelse vertaling niet (P1-17).
   labelwijziging de Engelse vertaling niet (P1-17).
 
 
-- **P2-45 · Home: knop "Selecteer datum" naast de datumchips · Eigenaar: Claude
-  (builder + custom code), ontwerpbesluit bij Bob.** Vraag Bob 2026-09-18: *"Kan
+- **P2-45 · Home: knop "Selecteer datum" naast de datumchips · Eigenaar: Claude — bezig
+  (builder + custom code, sessie 2026-09-18 middag).** Vraag Bob 2026-09-18: *"Kan
   bij die choicechips ook een button, selecteer datum?"* Ja — en het past op de
   bij die choicechips ook een button, selecteer datum?"* Ja — en het past op de
   bestaande architectuur zonder nieuwe App State of nieuwe API-parameters.
   bestaande architectuur zonder nieuwe App State of nieuwe API-parameters.