Explorar el Código

Taak 77: login-guard + vertalingen hersteld; uitgelogde blok naar Bob

- Visibility userSessionid Is Set and Not Empty op de Column met de vijf
  ingelogde items staat en is export-geverifieerd.
- De vijf EN-vertalingen die bij de eerdere duplicatie sneuvelden zijn terug.
- Tweede bouwpoging ('+' op de TabBar Page-rij) verving de hele Column door een
  lege Row (1104 -> 766 regels); teruggedraaid met de undo-knop, staat is weer
  compleet. dart analyze 0 errors.
- Les: een TabBar Page heeft precies EEN kind, dus Insert Widget vervangt daar
  in plaats van toe te voegen. Werkroute via Wrap Widget uitgeschreven voor Bob.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob hace 21 horas
padre
commit
b6e157ea72
Se han modificado 1 ficheros con 41 adiciones y 44 borrados
  1. 41 44
      TASKS.md

+ 41 - 44
TASKS.md

@@ -203,51 +203,48 @@ de website-homepage; `/nl/user/register` is anoniem bereikbaar (200).
   taak 32B (events zonder categorie).
 
 
-- **77 · "Account aanmaken" ontbreekt in de app · ⚠️ HALF AF + één regressie te
-  herstellen · Eigenaar: Claude — bezig (sessie 2026-09-17).**
-  **Wat af is:** de `Column` met de vijf ingelogde items op Favorieten tab 4
+- **77 · "Account aanmaken" · ⚠️ HELFT AF — de rest is voor Bob (builder) ·
+  Eigenaar: Bob.** Stand 2026-09-17, alles export-geverifieerd, `dart analyze`
+  0 errors.
+  **✅ Af:** de `Column` met de vijf ingelogde items op Favorieten tab 4
   (Uitloggen, Mijn profiel, Wachtwoord wijzigen, Account verwijderen,
-  Stadsactiviteit aanmaken) heeft nu een Visibility-conditie
-  **`userSessionid` Is Set and Not Empty**. Export-geverifieerd:
-  `Visibility(visible: FFAppState().userSessionid != null && ... != '')` om de
-  hele Column. Een uitgelogde gebruiker ziet die vijf dus niet meer.
-  **⚠️ Regressie die ik veroorzaakte en die nog hersteld moet worden:** bij een
-  poging die Column te dupliceren (voor het uitgelogde blok) heeft FlutterFlow
-  de Column **vervangen door een kopie met nieuwe i18n-sleutels**. Netto is er
-  géén tweede Column bijgekomen, maar de vijf items hebben nu verse sleutels met
-  een **lege Engelse vertaling**; de oude sleutels zijn uit
-  `internationalization.dart` verdwenen. Terug te zetten (oude waarden, uit de
-  export van vlak ervoor):
-  | nieuwe sleutel | Nederlands | Engels moet worden |
-  |---|---|---|
-  | `wl9hk4vl` | Uitloggen | Log out |
-  | `mj6x0sxf` | Mijn profiel | My Profile |
-  | `wxlmmqen` | Wachtwoord wijzigen | Change password |
-  | `lwnfr9gv` | Account verwijderen | Delete account |
-  | `xglkp3tc` | Stadsactiviteit aanmaken | Create city activity |
-  **Les:** `Duplicate` op een widget waar net een Visibility-conditie op is
-  gezet, is niet veilig — het lijkt te mislukken (geen tweede node in de tree)
-  maar hernummert wél alle onderliggende vertaalsleutels. Dupliceer zo'n blok
-  dus **vóór** je de conditie zet, of bouw het tweede blok met het
-  "+"-icoontje op de tree-rij.
-  **Nog te doen:** het uitgelogde blok zelf — "Account aanmaken"
-  (`launchURL` naar `https://uitgaanskrant.com/nl/user/register`, anoniem 200
-  gemeten) en "Inloggen" (in-app naar `LoginWidget`), met de omgekeerde
-  conditie. Bob's akkoord ligt er; alleen de bouwroute moet anders.
-  Gemeten in de export van 17 sep: `Favorieten` heeft **geen login-guard** — je
-  komt er ook zonder in te loggen. Tab 4 (*Gebruiker*) toont dan wél gewoon
-  **"Uitloggen"** (`275gmehq`, r.788) en **"Account verwijderen"**
-  (`i31b4itp`, r.966), allebei zonder zichtbaarheidsconditie. Een nieuwe
-  gebruiker krijgt daar dus twee knoppen die nergens op slaan en géén manier om
-  een account te maken.
-  **Voorstel (Bob's akkoord afwachten):** tab 4 twee gezichten geven met een
-  Visibility-conditie op `FFAppState().userSessionid` — het patroon van P0-13:
-  - **uitgelogd** → "Account aanmaken" (`launchURL` naar
-    `https://uitgaanskrant.com/nl/user/register`, anoniem **200** gemeten) en
-    "Inloggen" (in-app naar `LoginWidget`);
-  - **ingelogd** → "Uitloggen" + "Account verwijderen", zoals nu.
-  Registreren blijft dus op de website (geen formulier in de app), precies zoals
-  gevraagd. Engelse vertalingen meteen meenemen: "Create account" / "Log in".
+  Stadsactiviteit aanmaken) heeft een Visibility-conditie **`userSessionid`
+  Is Set and Not Empty**. Een uitgelogde gebruiker ziet die vijf dus niet meer —
+  dat was het eigenlijke probleem. De vijf Engelse vertalingen die onderweg
+  sneuvelden zijn teruggezet (Log out / My Profile / Change password /
+  Delete account / Create city activity).
+  **❌ Niet gelukt: het uitgelogde blok.** Twee bouwroutes geprobeerd, beide
+  richtten schade aan die ik daarna heb teruggedraaid:
+  1. **`Duplicate` op de Column** → geen tweede node, maar wél alle
+     vertaalsleutels hernummerd (vijf EN-vertalingen leeg). Hersteld.
+  2. **"+"-icoontje op de `TabBar Page`-rij → Column** → dit **verving** de
+     bestaande Column door een lege `Row`; het bestand ging van 1104 naar 766
+     regels en de hele tab was leeg. Teruggedraaid met de **undo-knop in de
+     werkbalk** (Ctrl+Z werkte niet); daarna weer 1104 regels, conditie intact,
+     vertalingen intact.
+  **⚠️ De les, belangrijk voor later: een `TabBar Page` heeft precies ÉÉN kind.**
+  "Insert Widget" op die rij voegt niets toe maar **vervangt** wat er staat —
+  zonder waarschuwing. Zet daar dus nooit een widget in zolang er al iets in zit.
+  **Werkroute die wél moet lukken (voor Bob, in zijn eigen browser):**
+  1. Rechtsklik de bestaande `Column` → **Wrap Widget → Column**. Nu is er een
+     buitenste Column met de bestaande als enig kind.
+  2. Verplaats de Visibility-conditie: zet hem op de **binnenste** Column (die
+     heeft hem al) en laat de buitenste onvoorwaardelijk.
+  3. Voeg aan de **buitenste** Column een tweede kind toe (nu mag "+" wél, want
+     een Column accepteert meerdere kinderen): een `Column` met daarin een
+     `Text` + twee knoppen.
+  4. Die tweede Column krijgt Visibility **`userSessionid` Is Not Set or Is
+     Empty** (die operator staat gewoon in de lijst — geen "opposite"-truc nodig).
+  5. Inhoud: kop/uitleg + **"Account aanmaken"** → `launchURL`
+     `https://uitgaanskrant.com/nl/user/register` (anoniem **200** gemeten) en
+     **"Inloggen"** → Navigate to `LoginWidget`. Engelse vertalingen:
+     "Create account" / "Log in".
+  **Vormgeving (merk-DNA uit `CLAUDE.md`):** "Account aanmaken" is de primaire
+  actie → fill **`secondary`** (oranje #FF680D) met witte tekst; "Inloggen"
+  secundair → `primaryBackground` met `secondary` tekst. Kop in `headlineSmall`
+  (staat op Noto Serif). Voorstel voor de uitlegzin: *"Met een account bewaar je
+  je favoriete gemeenten en gelegenheden, en krijg je een agenda per mail."*
+
 
 **🟠 Vóór livegang, één ronde**