LEESMIJ.md 3.5 KB

Snippets

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 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.
  • verbindings_banner.dart.txt — Custom Widget VerbindingsBanner, parameters width (double, optioneel), height (double, optioneel), tekst (String, optioneel). Laat die drie leeg bij het plaatsen.

⚠️ Het widget neemt bewust GEEN ruimte in de layout in (SizedBox.shrink) en toont de melding via de ScaffoldMessenger over de pagina heen. Reden: de header zit in een FlexibleSpaceBar.background met een vaste hoogte van 74 px. Zet het dus als laatste kind in de bestaande Row van HeaderButtonsComponentniet in een Column eromheen en niet in een Container met een vaste hoogte. Zie de valkuil in TASKS.md.

Beide horen bij de verbindingsmelding in de header; de bouwstappen staan in TASKS.md.

Aanmaakpagina's (P2-29 / A3) — einddatum-controle

  • evenement_create.dart.txt — Custom Action evenementCreate, volledige code zoals hij nu in de builder staat plus één extra blok direct na de Datum is verplicht-controle: is de einddatum gevuld én ligt hij vóór de startdatum, dan komt {'success': false, 'error': 'De einddatum ligt vóór de startdatum'} terug. De app toont die tekst al in de bestaande snackbar; er hoeft aan de pagina niets te veranderen.
  • stadsactiviteit_create.dart.txt — idem voor stadsactiviteitCreate.

Argumenten, volgorde en return type blijven exact gelijk, dus de bestaande bindingen op ButtonIndienen blijven werken. Invoeren: Custom Code → action openen → Cancel/Discard is niet nodig, gewoon de hele body vervangen (alles onder // DO NOT REMOVE), Ctrl+S, en verifiëren met een verse export op de string einddatum ligt vóór.

Kopie-knop / klonen (taak 127)

  • kloonbron-drupal-patch.inc.txtgeen FlutterFlow-code, maar een patch voor custom.mijn_aanmeldingen.inc op de server (taak 127-A). Dicht drie gaten in aanmelding_kloonbron.json: het ontbrekende entree_tid bij een activiteit, logo_url/fotos_urls voor de preview, en de uitgeklapte plaatsketen (provincie_tid/gemeente_tid/keten) voor de cascade. Read-only getest op productie 2026-09-20, inclusief randgevallen.
  • kloon_functies.dart.txt — twee Custom Functions (kloonTekst, kloonLijst) die één veld uit App State kloonBron lezen. Beide met een non-nullable return, anders vult valueOrDefault een lege waarde op met de default.

⚠️ Het keten-formaat ("provincie|gemeente|plaats") is met opzet identiek aan dat van taak 123, zodat de custom functions ketenProvincie/ketenGemeente/ ketenPlaats uit taak 124 hergebruikt kunnen worden. Bouw ze niet twee keer.