|
|
@@ -47,7 +47,7 @@ Google Play en één doorloop die alleen Bob kan doen.
|
|
|
| **Bij livegang** | Schakelaars en opruimklussen | Eigen blok hieronder |
|
|
|
| ~~115~~ | ~~AdBanner verplaatsen~~ | ✅ **AF** (Bob 2026-09-20, export-geverifieerd): volgorde is nu slider → banner → filterbalk → lijst |
|
|
|
| ~~116~~ | ~~AdBanner springt~~ | ✅ **AF** (Bob 2026-09-20): Container `65/65/105/105` mét de padding erin, dus de banner krijgt zijn volle 50 resp. 90 dp én de lucht tot de slider blijft |
|
|
|
-| **121** | 15 verweesde mappen in `lib/` opruimen | Staan lokaal én in git, maar FlutterFlow levert ze niet meer. Twee ervan breken `dart analyze`. Eigen blok hieronder |
|
|
|
+| **121** | 15 verweesde mappen in `lib/` opruimen (+ `get_streamed_response_web.dart`/`_http.dart`, zie 2026-09-21) | Staan lokaal én in git, maar FlutterFlow levert ze niet meer. Twee ervan breken `dart analyze`. Eigen blok hieronder |
|
|
|
| **120** | 12 hardcoded kleuren aan thematokens binden | ⚠️ Claude kwam er 2026-09-20 niet in: widget-selectie in de tree landt niet in Bob's huidige Chrome-venster. Inventaris mét vindplaatsen staat klaar | Alle 12 zijn exact gelijk aan een bestaand token, dus nu onzichtbaar — maar ze lopen niet mee bij een themawijziging. Eigen blok hieronder |
|
|
|
| ~~117~~ | ~~Kalenderpermissie eruit~~ | ✅ **AF** (Bob 2026-09-20, export-geverifieerd): `READ_CALENDAR`/`WRITE_CALENDAR` én `NSCalendarsUsageDescription` zijn weg; `CAMERA` staat er nog (terecht) |
|
|
|
| **118** | AdMob EU-consentbericht | ⚠️ Half: de FlutterFlow-toggle staat goed, maar het bericht moet in de **AdMob-console** gepubliceerd zijn. Eigen blok hieronder |
|
|
|
@@ -344,6 +344,50 @@ zijn hernummerd). Te herstellen via het globe-icoontje, meenemen in 128-F:
|
|
|
De twee "Kopie"-sleutels horen bij taak 127 van de andere sessie; die zijn
|
|
|
meegehernummerd omdat ze op dezelfde pagina staan.
|
|
|
|
|
|
+### 128-B · voortgang 2026-09-21 (Claude, in de builder)
|
|
|
+
|
|
|
+**Klaar en export-geverifieerd:**
|
|
|
+- API Call **`Nieuwsbrieven`** — top-level GET, `Cookie: '${sessionName}=${sessid}'`
|
|
|
+ met echte interpolatie, en `static List? items(...)` met `true` + `as List?`.
|
|
|
+- Vierde tab **"Nieuwsbrieven"** op `mijnProfiel` (achter Account).
|
|
|
+- In die tab: `Column > ListView` met **Backend Query** op die call
|
|
|
+ (`sessionName`/`sessid` aan App State gebonden) en **Generate Dynamic Children**
|
|
|
+ via **Predefined Path `items`** → de export toont
|
|
|
+ `NieuwsbrievenCall.items(...)?.toList() ?? []`, dus null-veilig.
|
|
|
+- Item-template `Row > Column > [Text $.naam, Text $.omschrijving]`.
|
|
|
+
|
|
|
+### ⚠️ Nieuw gegeven: een `Switch` werkt NIET in een dynamische lijst
|
|
|
+
|
|
|
+Ik had per rij een `Switch` gezet met Initial Value op `$.geabonneerd`. De export
|
|
|
+laat zien waarom dat niet kan:
|
|
|
+
|
|
|
+```dart
|
|
|
+Switch.adaptive(
|
|
|
+ value: _model.switchValue ??= getJsonField(nieuwsbriefItemItem, r'$.geabonneerd'),
|
|
|
+```
|
|
|
+
|
|
|
+en in het model staat **één** `bool? _switchValue;` voor de hele pagina. Widget
|
|
|
+state is in FlutterFlow per *pagina*, niet per lijst-item, dus de `??=` wordt door
|
|
|
+de eerste rij gevuld en **alle rijen tonen daarna dezelfde stand**. Dat is een
|
|
|
+stille bug: in de builder ziet het er correct uit.
|
|
|
+
|
|
|
+Geldt voor elk widget met eigen waarde-state (Switch, Checkbox, TextField) binnen
|
|
|
+*Generate Dynamic Children*. Twee uitwegen:
|
|
|
+1. **Conditionele widgets** — twee varianten met tegengestelde Visibility-condities
|
|
|
+ op het loop-item. Geen widget state, dus per rij correct. Dit is het patroon van
|
|
|
+ het favorietenhartje en van taak 77.
|
|
|
+2. **De rij een eigen component maken** — elke instantie krijgt dan een eigen model,
|
|
|
+ dus een echte Switch werkt wel. Netter, maar de bindingen naar het loop-item
|
|
|
+ moeten dan als component-parameters opnieuw gelegd worden.
|
|
|
+
|
|
|
+Gekozen: **route 1**. De Switch is verwijderd en er staat nu een `IconButton` in
|
|
|
+de Row; die krijgt een conditie + actie, en wordt daarna gedupliceerd voor de
|
|
|
+omgekeerde stand.
|
|
|
+
|
|
|
+**Nog te doen in deze tab:** icoon + conditie + `drupalRequest`-actie op beide
|
|
|
+knoppen (subscribe/unsubscribe, **met `FFAppState().userToken` als 5e argument**,
|
|
|
+anders `CSRF validation failed` en stil `[]`), Column op Expanded.
|
|
|
+
|
|
|
### 128-C · Waarschuwing bij 0 gevolgde gemeenten · Eigenaar: Claude
|
|
|
|
|
|
Bob's keuze 2026-09-21. **Gemeten: 17 van de 18 actieve abonnees op de
|
|
|
@@ -1218,6 +1262,7 @@ ruimt de lokale map niet op (bekend patroon, staat in `CLAUDE.md`).
|
|
|
```
|
|
|
lib/favorieten_copy lib/kanweg_test_upload
|
|
|
lib/favorieten_copy2 lib/shared/drawer_component_copy
|
|
|
+lib/backend/api_requests/get_streamed_response_web.dart (+ _http.dart)
|
|
|
lib/horecagelegenhedenoverzicht/horecagelegenheid_event_tabel_component_copy
|
|
|
lib/kanweg (+ kanweg_header_buttons_component_copy, lib/shared/geen_evenementen_component
|
|
|
kanweg_home_copy, kanweg_horecagelegenheden_overzicht, lib/shared/header_current_copy
|
|
|
@@ -1229,8 +1274,17 @@ lib/kanweg (+ kanweg_header_buttons_component_copy, lib/shared/geen_eve
|
|
|
**Waarom het meer is dan rommel:** twee ervan geven een **harde compile-error**.
|
|
|
`kanweg/kanweghorecagelegenheid_current_copy` en `shared/drawer_component_copy`
|
|
|
roepen `KanwegHorecagelegenhedenOverzichtWidget` aan, en `lib/index.dart`
|
|
|
-exporteert die map niet (meer). `dart analyze` op de projectmap geeft daardoor
|
|
|
-**2 errors**, terwijl een verse export er **0** geeft.
|
|
|
+exporteert die map niet (meer).
|
|
|
+
|
|
|
+**Er is er 2026-09-21 een derde bijgekomen, met een nieuwe oorzaak.** De export
|
|
|
+levert sindsdien alleen nog `get_streamed_response.dart` (die kaal `http` gebruikt);
|
|
|
+de oude `_web.dart`/`_http.dart` uit de conditional-import-opzet komen niet meer mee.
|
|
|
+Tegelijk haalde FlutterFlow **`fetch_api` en `fetch_client` uit `pubspec.yaml`** —
|
|
|
+terecht, want niemand gebruikt ze nog. Gevolg: `get_streamed_response_web.dart` staat
|
|
|
+er nog, importeert een package dat er niet meer is, en levert **5 analysefouten**.
|
|
|
+Niets importeert dat bestand (`grep` bevestigd), dus de **build** breekt er niet op —
|
|
|
+alleen `dart analyze`. Samen met de twee hierboven: `dart analyze` op de projectmap
|
|
|
+geeft **7 errors**, terwijl een verse export er **0** geeft.
|
|
|
|
|
|
⚠️ **Die twee errors stonden al op master vóór de commit van 2026-09-20** — het is
|
|
|
dus geen regressie van die commit, maar ze blokkeren wel een lokale build vanuit de
|
|
|
@@ -1240,8 +1294,8 @@ bouwt (dat vertrekt vanuit de cloud-staat, niet vanuit deze map).
|
|
|
**Doen, als je de projectmap weer wilt kunnen builden:**
|
|
|
```bash
|
|
|
cd /home/bob/Projects/ff-app/uitgaanskrant-1qhvtd
|
|
|
-git rm -r --cached -q lib/favorieten_copy lib/favorieten_copy2 lib/kanweg lib/kanweg_test_upload lib/shared/drawer_component_copy lib/shared/geen_evenementen_component lib/shared/header_current_copy lib/uitgaanspaginas/home_copy2 lib/uitgaanspaginas/home_uitgaan_slider_component_copy lib/uitgaanspaginas/home_uitgaantabel_kaart_component_copy lib/horecagelegenhedenoverzicht/horecagelegenheid_event_tabel_component_copy
|
|
|
-rm -rf lib/favorieten_copy lib/favorieten_copy2 lib/kanweg lib/kanweg_test_upload lib/shared/drawer_component_copy lib/shared/geen_evenementen_component lib/shared/header_current_copy lib/uitgaanspaginas/home_copy2 lib/uitgaanspaginas/home_uitgaan_slider_component_copy lib/uitgaanspaginas/home_uitgaantabel_kaart_component_copy lib/horecagelegenhedenoverzicht/horecagelegenheid_event_tabel_component_copy
|
|
|
+git rm -r --cached -q lib/favorieten_copy lib/favorieten_copy2 lib/kanweg lib/kanweg_test_upload lib/shared/drawer_component_copy lib/shared/geen_evenementen_component lib/shared/header_current_copy lib/uitgaanspaginas/home_copy2 lib/uitgaanspaginas/home_uitgaan_slider_component_copy lib/uitgaanspaginas/home_uitgaantabel_kaart_component_copy lib/horecagelegenhedenoverzicht/horecagelegenheid_event_tabel_component_copy lib/backend/api_requests/get_streamed_response_web.dart lib/backend/api_requests/get_streamed_response_http.dart
|
|
|
+rm -rf lib/favorieten_copy lib/favorieten_copy2 lib/kanweg lib/kanweg_test_upload lib/shared/drawer_component_copy lib/shared/geen_evenementen_component lib/shared/header_current_copy lib/uitgaanspaginas/home_copy2 lib/uitgaanspaginas/home_uitgaan_slider_component_copy lib/uitgaanspaginas/home_uitgaantabel_kaart_component_copy lib/horecagelegenhedenoverzicht/horecagelegenheid_event_tabel_component_copy lib/backend/api_requests/get_streamed_response_web.dart lib/backend/api_requests/get_streamed_response_http.dart
|
|
|
fvm dart analyze lib/ | grep -c "^ error -" # hoort 0 te zijn
|
|
|
```
|
|
|
⚠️ Controleer vóór het uitvoeren dat `favorieten_copy2` en `header_current_copy`
|