Explorar o código

Snippets: eigen importregel niet meer te missen

Bob's build faalde op "Undefined name 'http'": de importregel die direct onder
de DO NOT REMOVE-regel staat was niet meegeplakt. De Custom Code-editor slaat de
action wel gewoon op en waarschuwt nergens voor; pas Gradle struikelt erover.

Gereproduceerd en getest in een exportmap: alleen import 'package:http/http.dart'
as http is nodig (dart:async niet - Future en timeout komen via de bestaande
FlutterFlow-imports). Het widget heeft dit probleem niet, go_router komt daar
ook zonder eigen import binnen.

Beide snippets hebben nu een "PLAK VANAF HIER"-markering op de juiste regel, en
de valkuil staat in LEESMIJ.md en TASKS.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob hai 1 día
pai
achega
b4830a4a23
Modificáronse 4 ficheiros con 34 adicións e 5 borrados
  1. 20 2
      TASKS.md
  2. 9 2
      snippets/LEESMIJ.md
  3. 2 1
      snippets/check_verbinding.dart.txt
  4. 3 0
      snippets/verbindings_banner.dart.txt

+ 20 - 2
TASKS.md

@@ -23,8 +23,16 @@ action de vlag met `FFAppState().update(...)` en niet met een kale toewijzing:
 **alleen `update()` roept `notifyListeners()` aan** (de setters in
 `app_state.dart` doen dat niet).
 
-Plak steeds alleen wat ónder de `// DO NOT REMOVE`-regel staat; de importkop
-genereert FlutterFlow zelf.
+Plak alles onder de `// DO NOT REMOVE`-regel — **inclusief de eigen importregel
+die daar direct onder staat** (er staat een `⬇ PLAK VANAF HIER ⬇`-markering).
+De FlutterFlow-importkop erbóven genereert de builder zelf.
+
+⚠️ **Valkuil, 2026-09-13 aan den lijve:** zonder
+`import 'package:http/http.dart' as http;` slaat de Custom Code-editor de action
+gewoon op en meldt de builder **niets** — maar de Gradle-build faalt met
+`Error: Undefined name 'http'`. De editor controleert eigen imports dus niet.
+Het widget heeft dit probleem niet: `go_router` komt daar ook via de
+FlutterFlow-imports binnen (getest, compileert met én zonder).
 - **Custom Action `checkVerbinding`** — één HEAD-request op de site-root.
   Gemeten: HTTP 200, **0 bytes, 57 ms** (tegenover 34 KB / 1,3 s voor een gewone
   data-call), dus verwaarloosbaar. Een 401/404 telt als bereikbaar; alleen 5xx,
@@ -80,6 +88,16 @@ blok ís de gecrashte widget (bevinding C hieronder). De banner maakt het alleen
 verklaarbaar in plaats van kapot. De vier crashplekken blijven dus een aparte
 taak.
 
+### 🛠 Bevinding C · offline-crash op Home/P-Uitgaan-slider — Eigenaar: Claude — bezig (2026-09-13 19:45)
+
+Aanpak: geen herbouw naar custom action, maar een **Predefined Path** op de
+API-call (`items` = `$[:]`, is-list) en Generate Dynamic Children daaraan
+binden. FlutterFlow genereert dan `XCall.items(jsonBody)?.toList() ?? []` —
+null-veilig, in tegenstelling tot `getJsonField(jsonBody, r'$').toList()`.
+Plekken: `HomeSliderCall` (Home-slider), `UitgaanSliderCall` (P-Uitgaan-slider),
+`HorecagelegenheidoverzichtCall` (horeca tab 6 — herbinding daar is voor Bob,
+Claude komt niet in dat paneel op die pagina).
+
 ### 🐞 Nieuw gevonden 2026-09-13 (Claude, code-audit op verse export)
 
 Twee echte bevindingen uit een browserloze audit; allebei nagemeten tegen

+ 9 - 2
snippets/LEESMIJ.md

@@ -4,8 +4,15 @@ Custom code die via de FlutterFlow Custom Code-editor ingevoerd moet worden.
 Staat hier als `.txt` zodat `flutter analyze` en de export er niets mee doen —
 deze map ligt bewust buiten `lib/` en overleeft daarom een `export-code`.
 
-Plak bij het invoeren alleen wat **onder** de `// DO NOT REMOVE`-regel staat;
-de importkop genereert FlutterFlow zelf.
+Plak bij het invoeren alles onder de `// DO NOT REMOVE`-regel — **inclusief de
+eigen importregels die daar direct onder staan**; de FlutterFlow-importkop
+erbóven genereert de builder zelf. In beide bestanden staat een
+`⬇ PLAK VANAF HIER ⬇`-markering op precies de goede plek.
+
+⚠️ **Vergeet die importregel niet.** Gebeurde 2026-09-13: zonder
+`import 'package:http/http.dart' as http;` slaat de Custom Code-editor de
+action gewoon op en meldt de builder niets, maar faalt de **Gradle-build** met
+`Error: Undefined name 'http'`. De editor controleert dit dus niet voor je.
 
 - `check_verbinding.dart.txt` — Custom **Action** `checkVerbinding`,
   Return Type Boolean, geen argumenten.

+ 2 - 1
snippets/check_verbinding.dart.txt

@@ -8,7 +8,8 @@ import 'package:flutter/material.dart';
 // Begin custom action code
 // DO NOT REMOVE OR MODIFY THE CODE ABOVE!
 
-import 'dart:async';
+// ⬇⬇⬇ PLAK VANAF HIER — deze importregel hoort erbij! ⬇⬇⬇
+// Zonder deze regel faalt de build met: Undefined name 'http'.
 import 'package:http/http.dart' as http;
 
 /// Kijkt of de server bereikbaar is en zet App State `geenVerbinding`.

+ 3 - 0
snippets/verbindings_banner.dart.txt

@@ -9,6 +9,9 @@ import 'package:flutter/material.dart';
 // Begin custom widget code
 // DO NOT REMOVE OR MODIFY THE CODE ABOVE!
 
+// ⬇⬇⬇ PLAK VANAF HIER ⬇⬇⬇
+// (deze import mag, maar is niet strikt nodig: go_router komt hier ook
+//  via de FlutterFlow-imports binnen — getest 2026-09-13)
 import 'package:go_router/go_router.dart';
 
 /// Balkje dat zichzelf toont zodra de server onbereikbaar is.