Просмотр исходного кода

Huidige gemeente uitgelicht in favorietenlijst (taak 112 af)

De rij van de gemeente waar je nu staat toont de naam vetgedrukt met een
groen vinkje; de andere rijen normaal met een chevron. Vier
Visibility-condities op Bob's custom function isHuidigeGemeente(nid, huidig),
die nid en gemeenteSelectId als tekst vergelijkt zodat een int-nid geen
stille mismatch geeft. Geverifieerd met een verse export: 0 errors.

CLAUDE.md: een openstaande geneste Set-Variable-dialoog slikt elke klik in de
dialoog eronder — dat verklaart de dode "Apply Opposite Statement"-toggle en
de rode functie() zonder argumenten. Recept voor zo'n conditie erbij.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 14 часов назад
Родитель
Сommit
93891cb374
2 измененных файлов с 32 добавлено и 1 удалено
  1. 30 0
      CLAUDE.md
  2. 2 1
      TASKS.md

+ 30 - 0
CLAUDE.md

@@ -2052,6 +2052,36 @@ volgorde van proberen:
   tijd dan Bob het zelf kan doen — meld concreet (component, exacte
   stappen) en vraag het aan hem.
 
+**⚠️ Zolang een GENESTE Set-Variable-dialoog nog openstaat, slikt die élke
+klik in de dialoog eronder — ook al zie je die gewoon staan.** Bevestigd
+2026-09-20 (P2-112, vier Visibility-condities met een custom function van 2
+argumenten). Symptoom: de toggle **"Apply Opposite Statement"** reageert niet,
+hoe precies je ook mikt (7 pogingen op 4 verschillende coördinaten), en
+**Confirm van de buitenste dialoog levert een RODE `functie()` zonder
+argumenten op** — een kapotte binding die de export project-breed blokkeert.
+Oorzaak: na het kiezen van een waarde blijft de geneste dialoog vaak *open*
+(hij vervaagt alleen, en de buitenste toont de waarde al ingevuld, dus het
+lijkt klaar). **Vaste werkwijze: sluit de geneste dialoog altijd expliciet —
+Confirm (reken op twee klikken) of de X — en controleer met een `zoom` dat hij
+weg is, vóór je in de buitenste dialoog iets anders aanraakt.** Daarna werkte
+de toggle in één klik, en Confirm gaf netjes `functie(a, b)`.
+
+**Recept voor zo'n conditie met een 2-argument custom function (2026-09-20,
+4x foutloos herhaald):** widget selecteren (2 kliks) → Visibility →
+Conditional aan → klik het rode `Unset` → **sleep de dialoog aan zijn
+onderrand omlaag** (anders valt de knoppenrij weg) → zoekveld: typ de
+functienaam (klik + wacht 4 s + typen; landt de tekst niet, klik en typ
+nog eens) → "Custom Functions" staat er dan als enige bron: **blind klikken
+±40 px eronder** maakt de optie zichtbaar, een tweede klik op diezelfde plek
+kiest 'm → per argument het potlood/icoontje naast **Value**:
+  - een JSON-veld uit de loop: bron **`<naam>Item Item`** → Available Options
+    **JSON Path** → veld → `$.veld` (typen landt hier stelselmatig pas bij de
+    tweede poging) → Confirm (2 kliks)
+  - een App State-veld: zoekterm = de **volledige** veldnaam, dan blind
+    klikken ±40 px onder de bronregel, en de rij die dan verschijnt aanklikken
+→ geneste dialoog dicht → pas dán "Apply Opposite Statement" → Confirm.
+Verifiëren in de export: `if (functions.x(...))` resp. `if (!functions.x(...))`.
+
 **Component Name kan per ongeluk overschreven worden.** **Concreet
 coördinaat-risico (bevestigd 2026-08-31, Claude, 1x echt gebeurd):** bij
 een geselecteerd *widget* staat "Search properties..." op ±y=116, maar

+ 2 - 1
TASKS.md

@@ -28,7 +28,8 @@ Google Play en één doorloop die alleen Bob kan doen.
 |---|---|---|
 | **G0.6** | Play-screenshots | ✅ Nieuwe set van 10 klaar (2026-09-19 avond). Alleen `tel-04-horeca.png` moet over zodra *Show Test Ads* uit staat |
 
-| **112** | `SelectStateDropDownComponent`: hartje bij tikken ook in het favorietenlijstje | **Eigenaar: Bob (of Claude in een eigen sessie).** De laadkant is af (2026-09-20): bij het openen vult `favorieteGemeenteIds` zich uit `favorieten_gemeenten.json`, dus het hartje klopt meteen. Wat nog ontbreekt: tik je op het hartje, dan verandert het lijstje eronder pas na opnieuw openen. Nodig: één custom function `favorietenLijstToggle(lijst, nid, titel, parentNid, parentTitel)` die het item toevoegt of verwijdert, plus in beide IconButton-ketens (If- én Else-tak van de `ConditionalBuilder`) een `Update Component State → favorieteGemeentenLijst` met die functie. ~10 argument-bindingen; kan ook met een extra `drupalRequest`-GET (6 argumenten per tak) i.p.v. de functie |
+| **112** | Restje zoek-stad: lege API-call opruimen | **Eigenaar: Bob.** `SelectStateDropDownComponent` → Actions → On Page Load → *Conditional Action 5* (`gemeenteSelectId is set/non-empty`) → TRUE-tak → **Action 13, Custom Action `drupalRequest`** met url/sessionName/sessionId/token/body allemaal Unset. Staat sinds 2026-09-20 op **disabled**; kan weg via ⋮ → Delete Action. Vlak eronder staat **Conditional Action 16** (`apiGemeenteResultInitalize -> Succeeded`) met twee lege takken — mag in dezelfde moeite weg |
+
 
 
 | **114** | Opruimen na de filterbalk-ombouw | **Eigenaar: Bob.** Restjes van taak 113 (filterbalk op `PUitgaanPage`, afgerond 2026-09-20): (a) component-parameter **`parameter1`** op `FilterBalkComponent` ontstond automatisch bij *Convert to Component* en wordt nergens gelezen — mag weg, en daarmee ook de meegegeven waarde op Home en `PUitgaanPage`; (b) **page state `zoekOpen` op Home** is overbodig geworden (de App State-versie stuurt alles); (c) App State **`zoekActief`** (Boolean) bestond al vóór deze taak en heeft **0 gebruikers**; (d) wegwerp: component **`FilterBalkKanweg`** + pagina's **`homeCopy`** en **`PUitgaanPageCopy`**. Geen van alle blokkeert iets — `dart analyze` geeft 0 errors |