Browse Source

P2-6 klaargezet voor de volgende sessie + vangnetkopie gemaakt

HorecagelegenhedenOverzichtCopy3 aangemaakt als verse duplicaat van de
live pagina (exportgeverifieerd identiek: 6 kaarten, 6 fetchAlle-
aanroepen, 2 TextFormFields). Daar wordt op gebouwd; de live pagina
blijft ongemoeid tot de route aan het eind omgezet wordt — dat zijn
precies 2 Navigate-To's in levende code (drawer_component:690 en
horecagelegenheid_current:1562), de andere 2 treffers zitten in dode
kopieen.

P2-6 heeft nu een uitvoerplan in 8 stappen bovenaan staan, met per stap
wat wel en niet kan op deze pagina en een tijdsinschatting van 3 a 4 uur.

CLAUDE.md: direct na een Duplicate Page faalt export-code een paar keer
met een serverfout; even wachten in plaats van in je eigen wijziging
zoeken.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 1 tuần trước cách đây
mục cha
commit
e375baaabb
2 tập tin đã thay đổi với 82 bổ sung1 xóa
  1. 8 0
      CLAUDE.md
  2. 74 1
      TASKS.md

+ 8 - 0
CLAUDE.md

@@ -1122,6 +1122,14 @@ actie geselecteerd). Gebruik dit altijd vóór je zelf gaat zoeken.
 een geblokkeerde export is vaak niet jouw schuld — check eerst wíe de
 fout veroorzaakt voordat je in je eigen werk gaat spitten.
 
+**Direct ná een zware builder-operatie (bv. `Duplicate Page` van een
+grote pagina) faalt `export-code` een paar keer met `Unexpected error
+from the server` — wacht even en probeer opnieuw.** Bevestigd
+2026-09-04: 3 aanroepen achter elkaar faalden, een vierde een paar
+minuten later gaf gewoon "All done!". Het Issues-paneel gaf geen
+blokkerende fout. De backend is dan nog aan het verwerken; ga niet in je
+eigen wijziging zoeken.
+
 **Een mislukte export kan ook gewoon een serverhikje zijn — probeer 'm
 één keer opnieuw vóór je gaat diagnosticeren.** Bevestigd 2026-09-04:
 `flutterflow export-code` gaf `Body: Error generating code for the

+ 74 - 1
TASKS.md

@@ -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.