Преглед на файлове

P2-46: link en koppen geverifieerd; nog 2 verplaatsingen + 2 guards

Bestellink is nu launchURL, beide koppen bestaan, 0 analyze-errors.
Betaalmogelijkheden staat nog te hoog en ColumnCrypto nog vóór de
betaallijst. Beide koppen missen een Visibility-guard — aangetoond met
nid 52981 (bezorgtijden wel, bezorgtin niet).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob преди 10 часа
родител
ревизия
2b808d0536
променени са 1 файла, в които са добавени 40 реда и са изтрити 49 реда
  1. 40 49
      TASKS.md

+ 40 - 49
TASKS.md

@@ -1100,59 +1100,50 @@ gekoppeld in de view — het wordt alleen zelden ingevuld.
 sinds deze sessie op **214439** i.p.v. 206292. Dat is bewust (zie de valkuil over
 type-inferentie in `CLAUDE.md`) — laat 'm zo staan.
 
-### P2-46-restant · Bezorgen-sectie: laatste drie stappen · Eigenaar: Bob (builder)
-
-Bob's keuzes (2026-09-19): bestellink moet een link worden, de betaallijst krijgt de kop
-**"Betaalmogelijkheden"** (contant/pin), de bezorggebieden **"Bezorgt in"**, en de
-cryptomunten mogen **achter** de betaalmogelijkheden. Claude kreeg de tree-drags in een
-1030px-venster niet betrouwbaar gedaan (kliks op chevrons/rijen landden niet meer), dus
-hieronder de exacte stappen. Alles in component **`EvenementHorecagelegenheid`**.
-
-**1. `Textbestellink` → echte link**
-- Widget tree → `ColumnBezorgen` → **`Textbestellink`**.
-- Text-waarde: icoontje naast "Text" → in de dialoog **Remove** → er komt een vrij
-  tekstveld → typ `Online bestellen`.
-- Actions-tab (2e icoontje in de iconenrij) → **Add Action** → zoek `Launch URL`
-  (staat onder categorie **Share**) → bij **URL** het icoontje naast het label →
-  Set from Variable → **EstablishmentInfo Response** → API Response Options **JSON Body**
-  → Available Options **Predefined Path** → Predefined Path Name **`establshmentBestellink`**
-  (let op de typfout in die naam: *establshment*, zonder de tweede i) → Confirm.
-- Stijl gelijk aan *Menukaart*/*Website*: Text Color → **Secondary**, en onder *Styling*
-  het onderstreep-icoon aan.
-- De bestaande Visibility-guard (`$[:].bestellink is set`) blijft gewoon staan.
-
-**2. Twee koppen erbij**
-- Rechtsklik **`TextBezorgenKop`** → **Duplicate**. De kopie komt er direct onder.
-  Hernoem 'm (naamveld rechtsboven) naar `TextBetaalKop` en zet de tekst op
-  **`Betaalmogelijkheden`**.
-- Nog een keer Duplicate → `TextBezorgtInKop`, tekst **`Bezorgt in`**.
-- De stijl klopt dan vanzelf (Body Medium, 600 semi-bold — zelfde als "Bezorgen").
-
-**3. Volgorde van `ColumnBezorgen`**
-Doel:
+### P2-46-restant · Bezorgen-sectie: nog 2 verplaatsingen + 2 guards · Eigenaar: Bob (builder)
+
+**Bob deed 2026-09-19 de link en de twee koppen.** Export-geverifieerd:
+- ✅ `Textbestellink` is nu een echte link: `onTap: await launchURL(establshmentBestellink(...))`,
+  tekst "Online Bestellen", Text Color *secondary*.
+- ✅ De koppen `Betaalmogelijkheden` (`paqq93tp`) en `Bezorgt in` (`usg8k534`) bestaan.
+- `dart analyze` op een verse export: **0 errors**.
+
+**Volgorde nu (export, documentvolgorde) — twee dingen staan nog verkeerd:**
 ```
-1  TextBezorgenKop              (Bezorgen)
-2  TextBezorgtijden             (Bezorgtijden: …)
-3  Textbezorgkosten             (Bezorgkosten: …)
-4  Textbestellink               (Online bestellen)
-5  Wrap  → TextAfhaalopties     (Afhaal / Bezorgen)
-6  Textbezorg-minorder          (Minimale bestelling: …)
-7  TextBetaalKop                (Betaalmogelijkheden)
-8  Wrap  → TextThuisbezorgtBetaalopties
-9  ColumnCrypto → TextCryptocoins
-10 TextBezorgtInKop             (Bezorgt in)
-11 Wrap  → TextBezorgtin
+Bezorgen
+Bezorgtijden: …
+Bezorgkosten: …
+Online Bestellen
+Betaalmogelijkheden      ← staat te hoog: er komt geen betaallijst onder
+Afhaal  Bezorgen
+Minimale bestelling: …
+Bitcoin / Bitcoin Cash   ← moet ná de betaallijst
+Contant
+Bezorgt in
+Enkhuizen  Bovenkarspel
 ```
-Probeer eerst gewoon op de gewenste plek te droppen — in jouw browser lukt dat mogelijk
-wel. **Landt elke sleep toch bovenaan** (dat is wat Claude ziet: een drop op een
-container-rij zet de node altijd als eerste kind), sleep ze dan één voor één op de rij
-**`ColumnBezorgen`** in **omgekeerde** volgorde van de lijst hierboven: eerst
-`Wrap(bezorgtin)`, dan `TextBezorgtInKop`, `ColumnCrypto`, `Wrap(betaalopties)`,
-`TextBetaalKop`, `Textbezorg-minorder`, `Wrap(afhaal)`, `Textbestellink`,
-`Textbezorgkosten`, `TextBezorgtijden`, en als laatste `TextBezorgenKop`.
+**Nog te verplaatsen (2 sleepacties):**
+1. `TextBetaalKop` → tussen `Textbezorg-minorder` en de `Wrap` met `TextThuisbezorgtBetaalopties`.
+2. `ColumnCrypto` → tussen die `Wrap` en `TextBezorgtInKop`.
+
+**⚠️ Nog te doen: een Visibility-guard op allebei de nieuwe koppen.** Ze hebben er geen, dus
+op een zaak die wél `bezorgtijden` heeft maar geen betaalopties of geen bezorggebied staat de
+kop alleen boven niets. Dat is geen theorie: van 120 Amsterdamse eetgelegenheden heeft er
+precies één bezorgtijden — **nid `52981` (Delhi Indian)** — en díé heeft géén `bezorgtin`.
+Recept per kop: Visibility → Conditional aan → op het rode `Unset`-veld klikken →
+**Conditions → Single Condition** → First Value = *EstablishmentInfo Response* → JSON Body →
+Predefined Path → `establishmentbezorgbetaalopties` resp. `establshmentBezorgtin` →
+operator **Is Set and Not Empty** → Confirm.
+⚠️ Maak zo'n conditie altijd áf: een aangezette Conditional met een leeg `Unset` blokkeert
+`export-code` voor het hele project (zie `CLAUDE.md`), en de toggle laat zich dan niet meer
+uitzetten — alleen een paginaherlaad helpt.
+
+**Twee cosmetische kleinigheden (jouw keuze):** de link mist de onderstreping die
+*Menukaart*/*Website* wél hebben, en de tekst is "Online **B**estellen" met hoofdletter.
 
 **Testen:** `uitgaanskrant://uitgaanskrant.com/eventCurrent?nid=214689&horecaid=157070`
-(Lotus, Enkhuizen — heeft alle bezorgvelden gevuld).
+(Lotus, Enkhuizen — alles gevuld) en `horecaid=52981` (Delhi Indian — bezorgt wel, maar
+zonder bezorggebied; daar zie je de ontbrekende guard).
 
 `kvk` blijft bewust onzichtbaar.