Pārlūkot izejas kodu

97c + 97d af, en zoeken gaat van realtime naar Enter

97c - filterHorecagelegenheden heeft items nu als List<dynamic>? met
(items ?? []) in de body (Bob). Daarmee is de null-check-operator uit de
zes bindingen verdwenen: 0 keer ")!", 6 keer de null-veilige vorm. De
provincie-pagina crasht dus niet meer op een mislukte API-call.

97d - Engelse vertaling van "Zoek op naam" toegevoegd (Search title).

Daarnaast op Bobs voorstel de trigger van het zoekveld omgezet van
On Change naar On Submit: zoeken gebeurt nu pas na Enter in plaats van bij
elke toetsaanslag. Op deze pagina zit de API-call rechtstreeks in de
FutureBuilder zonder cache, dus realtime zoeken kostte 6 calls per ronde
zonder dat het iets toevoegde. In de export: onChanged en EasyDebounce zijn
weg, er staat nu onFieldSubmitted met safeSetState.

De gemeente-pagina staat nog wel op realtime (die filtert lokaal op
page-state-lijsten en kost geen calls) - keuze voor Bob of dat gelijk moet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 8 stundas atpakaļ
vecāks
revīzija
5473b2a245

+ 12 - 2
lib/flutter_flow/custom_functions.dart

@@ -116,7 +116,7 @@ String googleMapsUrl(
 }
 
 List<dynamic> filterHorecagelegenheden(
-  List<dynamic> items,
+  List<dynamic>? items,
   String zoekterm,
   String? categorieFilter,
   String titelPad,
@@ -154,7 +154,7 @@ List<dynamic> filterHorecagelegenheden(
       .replaceAll('ç', 'c');
   final catFilter = categorieFilter?.trim();
 
-  return items.where((item) {
+  return (items ?? []).where((item) {
     final map = item is Map ? item : null;
     if (term.isNotEmpty) {
       final titelRaw = map?[titelKey]?.toString() ?? '';
@@ -280,6 +280,7 @@ List<dynamic>? categorieAlsLijst(dynamic categorie) {
 
 String? filterDatumVan(String? keuze) {
   final k = (keuze ?? '').toLowerCase().trim();
+  if (k.length == 10 && k[4] == '-' && k[7] == '-') return '$k 00:00:00';
   String soort = '';
   if (k.contains('weekend')) {
     soort = 'weekend';
@@ -304,6 +305,7 @@ String? filterDatumVan(String? keuze) {
 
 String? filterDatumTot(String? keuze) {
   final k = (keuze ?? '').toLowerCase().trim();
+  if (k.length == 10 && k[4] == '-' && k[7] == '-') return '$k 23:59:59';
   String soort = '';
   if (k.contains('weekend')) {
     soort = 'weekend';
@@ -325,3 +327,11 @@ String? filterDatumTot(String? keuze) {
   final dag = eind.day.toString().padLeft(2, '0');
   return '${eind.year}-$maand-$dag 23:59:59';
 }
+
+String? datumKnopLabel(String? filter) {
+  final k = (filter ?? '').trim();
+  if (k.length != 10) return '';
+  if (k[4] != '-') return '';
+  if (k[7] != '-') return '';
+  return k.substring(8, 10) + '-' + k.substring(5, 7) + '-' + k.substring(0, 4);
+}

+ 1 - 1
lib/flutter_flow/internationalization.dart

@@ -305,7 +305,7 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
   {
     'nm6s2mkp': {
       'nl': 'Zoek op naam',
-      'en': '',
+      'en': 'Search title',
     },
     'mgbxk04v': {
       'nl': 'Activiteiten',

+ 0 - 1
lib/horecagelegenhedenoverzicht/horecagelegenheden_overzicht_provincie_page/horecagelegenheden_overzicht_provincie_page_model.dart

@@ -12,7 +12,6 @@ import '/flutter_flow/custom_functions.dart' as functions;
 import '/index.dart';
 import 'horecagelegenheden_overzicht_provincie_page_widget.dart'
     show HorecagelegenhedenOverzichtProvinciePageWidget;
-import 'package:easy_debounce/easy_debounce.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_spinkit/flutter_spinkit.dart';
 import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';

+ 15 - 26
lib/horecagelegenhedenoverzicht/horecagelegenheden_overzicht_provincie_page/horecagelegenheden_overzicht_provincie_page_widget.dart

@@ -10,7 +10,6 @@ import 'dart:ui';
 import '/backend/schema/structs/index.dart';
 import '/flutter_flow/custom_functions.dart' as functions;
 import '/index.dart';
-import 'package:easy_debounce/easy_debounce.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_spinkit/flutter_spinkit.dart';
 import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
@@ -191,13 +190,9 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
                 child: TextFormField(
                   controller: _model.textController,
                   focusNode: _model.textFieldFocusNode,
-                  onChanged: (_) => EasyDebounce.debounce(
-                    '_model.textController',
-                    Duration(milliseconds: 2000),
-                    () async {
-                      safeSetState(() {});
-                    },
-                  ),
+                  onFieldSubmitted: (_) async {
+                    safeSetState(() {});
+                  },
                   autofocus: false,
                   enabled: true,
                   obscureText: false,
@@ -460,11 +455,10 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
                                         final horecagelegenheden = functions
                                             .filterHorecagelegenheden(
                                                 HorecagelegenheidoverzichtCall
-                                                        .items(
+                                                    .items(
                                                   staggeredViewHorecagelegenheidoverzichtResponse
                                                       .jsonBody,
-                                                )!
-                                                    .toList(),
+                                                )?.toList(),
                                                 _model.textController.text,
                                                 '',
                                                 '\$.titel',
@@ -663,11 +657,10 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
                                                   functions
                                                       .filterHorecagelegenheden(
                                                           HorecagelegenheidoverzichtCall
-                                                                  .items(
+                                                              .items(
                                                             staggeredViewHorecagelegenheidoverzichtResponse
                                                                 .jsonBody,
-                                                          )!
-                                                              .toList(),
+                                                          )?.toList(),
                                                           _model.textController
                                                               .text,
                                                           '',
@@ -896,11 +889,10 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
                                                   functions
                                                       .filterHorecagelegenheden(
                                                           HorecagelegenheidoverzichtCall
-                                                                  .items(
+                                                              .items(
                                                             staggeredViewHorecagelegenheidoverzichtResponse
                                                                 .jsonBody,
-                                                          )!
-                                                              .toList(),
+                                                          )?.toList(),
                                                           _model.textController
                                                               .text,
                                                           '',
@@ -1129,11 +1121,10 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
                                                   functions
                                                       .filterHorecagelegenheden(
                                                           HorecagelegenheidoverzichtCall
-                                                                  .items(
+                                                              .items(
                                                             staggeredViewHorecagelegenheidoverzichtResponse
                                                                 .jsonBody,
-                                                          )!
-                                                              .toList(),
+                                                          )?.toList(),
                                                           _model.textController
                                                               .text,
                                                           '',
@@ -1363,11 +1354,10 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
                                                   functions
                                                       .filterHorecagelegenheden(
                                                           HorecagelegenheidoverzichtCall
-                                                                  .items(
+                                                              .items(
                                                             staggeredViewHorecagelegenheidoverzichtResponse
                                                                 .jsonBody,
-                                                          )!
-                                                              .toList(),
+                                                          )?.toList(),
                                                           _model.textController
                                                               .text,
                                                           '',
@@ -1596,11 +1586,10 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
                                                   functions
                                                       .filterHorecagelegenheden(
                                                           HorecagelegenheidoverzichtCall
-                                                                  .items(
+                                                              .items(
                                                             staggeredViewHorecagelegenheidoverzichtResponse
                                                                 .jsonBody,
-                                                          )!
-                                                              .toList(),
+                                                          )?.toList(),
                                                           _model.textController
                                                               .text,
                                                           '',