|
|
@@ -2252,7 +2252,73 @@ overgeslagen, Bob's eigen Sort/Datatype-experiment op die pagina loopt
|
|
|
nog (zie P2-6); oppakken zodra dat is afgerond, zelfde recept
|
|
|
(kopieer de AdBanner-node vanaf een van de 3 al werkende pagina's).
|
|
|
|
|
|
-**P2-6 · Eigenaar: Claude** (niet meer 'bezig' — de de-risk-test is
|
|
|
+**P2-6 · KLAAR OM UIT TE VOEREN — begin hier. Eigenaar: Claude.**
|
|
|
+
|
|
|
+> ### Uitvoerplan voor de volgende sessie (opgesteld 2026-09-04, alles hieronder is getest)
|
|
|
+>
|
|
|
+> **Bouw op `HorecagelegenhedenOverzichtCopy3`, niet op de live pagina.**
|
|
|
+> Die kopie is op 2026-09-04 met `Duplicate Page` gemaakt van de live
|
|
|
+> `HorecagelegenhedenOverzicht` en is exportgeverifieerd identiek: 6
|
|
|
+> `HorecagelegenheidoverzichtKaartWidget`, 6 `fetchAlleHorecagelegenheden`-
|
|
|
+> aanroepen, 2 (lege) `TextFormField`s, 1941 vs 1940 regels. Als er
|
|
|
+> onderweg iets sneuvelt, staat de live pagina er nog ongeschonden.
|
|
|
+>
|
|
|
+> **Wat op deze pagina wél en niet kan (bewezen 2026-09-04, zie het kader
|
|
|
+> verderop voor het bewijs):**
|
|
|
+> - ✅ Widget invoegen in de **root-`Column`** (die de `Container` met de
|
|
|
+> `TabBar` bevat) — werkt.
|
|
|
+> - ✅ **Eigenschappen/bindings wijzigen** van widgets die binnen een
|
|
|
+> `ConditionalBuilder`-tak zitten — werkt.
|
|
|
+> - ❌ Widget invoegen in een `Column` binnen een `ConditionalBuilder` →
|
|
|
+> `If`-tak — gebeurt niet (dialoog blijft open, geen fout, niets kapot).
|
|
|
+> Geldt ook voor Bob in zijn eigen browser.
|
|
|
+> - ❌ `Wrap Widget` → `Column` op de `ConditionalBuilder` — "Invalid
|
|
|
+> Action", wordt teruggedraaid.
|
|
|
+>
|
|
|
+> **Stappen:**
|
|
|
+> 1. Insertie in de root-`Column` van **Copy3** even natesten (op
|
|
|
+> `...Copy` bewezen, op Copy3 nog niet).
|
|
|
+> 2. Eén `TextField` invoegen in die root-`Column` (rechtsklik op de
|
|
|
+> tree-rij → Insert Widget → **meteen typen**, niet eerst in het
|
|
|
+> zoekveld klikken). Hij landt achteraan; sleep de node daarna in de
|
|
|
+> tree op de `Column`-rij om 'm bóven de `TabBar` te krijgen (drop =
|
|
|
+> positie 0).
|
|
|
+> 3. `On Change` → Update Page State `zoekterm`. **Eén gedeeld veld voor
|
|
|
+> alle zes tabs**, niet zes losse — de bestaande 6x `zoektermXxx` /
|
|
|
+> `categorieFilterXxx` zijn daarmee overgedimensioneerd; laat ze staan
|
|
|
+> en gebruik er één set van.
|
|
|
+> 4. Categoriefilter (dropdown) op dezelfde plek, opties dynamisch. Daar
|
|
|
+> is nog een custom function voor nodig die de unieke `categorie`-
|
|
|
+> waarden uit de dataset van de actieve tab haalt.
|
|
|
+> 5. Per tab de `Generate Dynamic Children`-**Value** van de
|
|
|
+> `StaggeredView` omzetten van de rauwe `alleXxx`-lijst naar
|
|
|
+> `filterHorecagelegenheden(alleXxx, zoekterm, categorieFilter,
|
|
|
+> '$.titel', '$.categorie')`. Dit is puur binding-werk en valt dus
|
|
|
+> buiten de blokkade. **Dit is wel het risicovolle deel:** 6x een
|
|
|
+> custom function met 5 argumenten, en juist die dialoog staat in
|
|
|
+> `CLAUDE.md` bekend om bevriezen. Loopt er één vast: niet
|
|
|
+> doorproberen, overdragen aan Bob.
|
|
|
+> 6. Verse export + `dart analyze` (0 errors) ter controle.
|
|
|
+> 7. **Route omzetten — precies 2 wijzigingen in levende code** (de
|
|
|
+> andere twee treffers zitten in dode kopieën, laat die met rust):
|
|
|
+> - `lib/shared/drawer_component/drawer_component_widget.dart`:690
|
|
|
+> - `lib/horecagelegenhedenoverzicht/horecagelegenheid_current/horecagelegenheid_current_widget.dart`:1562
|
|
|
+> Beide `Navigate To` laten wijzen naar `HorecagelegenhedenOverzichtCopy3`
|
|
|
+> i.p.v. `HorecagelegenhedenOverzicht`.
|
|
|
+> 8. Daarna is de oude `HorecagelegenhedenOverzicht` een orphan. **Niet
|
|
|
+> weggooien** — als regel bij P2-7 zetten zodat Bob 'm opruimt.
|
|
|
+>
|
|
|
+> **Tijdsinschatting** (Claude in de browser, met verificatie-export per
|
|
|
+> stap): stap 2-3 een half uur tot drie kwartier, stap 4 ongeveer een
|
|
|
+> uur, stap 5 anderhalf tot tweeënhalf uur. Samen **3 à 4 uur**, dus
|
|
|
+> reken op twee sessies. Herbouwen van de hele pagina zou 6 à 10 uur
|
|
|
+> zijn en is niet nodig.
|
|
|
+>
|
|
|
+> ⚠️ **Direct ná een `Duplicate Page` faalt `export-code` een paar keer**
|
|
|
+> met `Unexpected error from the server` (3x achter elkaar gezien op
|
|
|
+> 2026-09-04), en lukt daarna gewoon. Even wachten, niet gaan zoeken.
|
|
|
+
|
|
|
+**Achtergrond en bewijs (Eigenaar: Claude)** (niet meer 'bezig' — de de-risk-test is
|
|
|
gedaan, zie het kader hieronder; stappen 3/4/6 staan nog open).
|
|
|
|
|
|
> **⚠️ RESULTAAT DE-RISK-TEST 2026-09-04 (Claude, op
|
|
|
@@ -2586,6 +2652,13 @@ eerstvolgende export weer terug. (Dat verklaart ook waarom de eerdere
|
|
|
`git rm`-ronde van 2026-08-24 wél bleef zitten: dát waren stale mappen
|
|
|
die de export al niet meer aanmaakte.)
|
|
|
|
|
|
+**Toe te voegen zodra P2-6 klaar is:** de oude
|
|
|
+`HorecagelegenhedenOverzicht` wordt orphan zodra de 2 Navigate-To's naar
|
|
|
+`HorecagelegenhedenOverzichtCopy3` wijzen. Ook `HorecagelegenhedenOverzichtCopy3`
|
|
|
+zelf heet dan nog "Copy3" terwijl het de levende pagina is — hernoemen of
|
|
|
+niet is Bob's keuze. En `HorecagelegenhedenOverzichtCopy` draagt sinds
|
|
|
+2026-09-04 twee testwidgets (zie P2-6).
|
|
|
+
|
|
|
**A. Componenten zonder één enkele importeur (7):**
|
|
|
1. `lib/components/header_buttons_component_copymethartje_*` — de oude
|
|
|
header mét gemeentehartje; overbodig sinds P0-12's fix, zie daar.
|