|
@@ -8,7 +8,9 @@ import '/horecagelegenhedenoverzicht/horecagelegenheidoverzicht_kaart/horecagele
|
|
|
import '/shared/drawer_component/drawer_component_widget.dart';
|
|
import '/shared/drawer_component/drawer_component_widget.dart';
|
|
|
import 'dart:ui';
|
|
import 'dart:ui';
|
|
|
import '/backend/schema/structs/index.dart';
|
|
import '/backend/schema/structs/index.dart';
|
|
|
|
|
+import '/flutter_flow/custom_functions.dart' as functions;
|
|
|
import '/index.dart';
|
|
import '/index.dart';
|
|
|
|
|
+import 'package:easy_debounce/easy_debounce.dart';
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
|
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
|
|
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
|
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
|
@@ -46,6 +48,12 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
|
|
|
_model = createModel(
|
|
_model = createModel(
|
|
|
context, () => HorecagelegenhedenOverzichtProvinciePageModel());
|
|
context, () => HorecagelegenhedenOverzichtProvinciePageModel());
|
|
|
|
|
|
|
|
|
|
+ _model.textController ??= TextEditingController()
|
|
|
|
|
+ ..addListener(() {
|
|
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
|
|
+ });
|
|
|
|
|
+ _model.textFieldFocusNode ??= FocusNode();
|
|
|
|
|
+
|
|
|
_model.tabBarController = TabController(
|
|
_model.tabBarController = TabController(
|
|
|
vsync: this,
|
|
vsync: this,
|
|
|
length: 6,
|
|
length: 6,
|
|
@@ -178,6 +186,113 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
|
|
|
child: Column(
|
|
child: Column(
|
|
|
mainAxisSize: MainAxisSize.max,
|
|
mainAxisSize: MainAxisSize.max,
|
|
|
children: [
|
|
children: [
|
|
|
|
|
+ Container(
|
|
|
|
|
+ width: double.infinity,
|
|
|
|
|
+ child: TextFormField(
|
|
|
|
|
+ controller: _model.textController,
|
|
|
|
|
+ focusNode: _model.textFieldFocusNode,
|
|
|
|
|
+ onChanged: (_) => EasyDebounce.debounce(
|
|
|
|
|
+ '_model.textController',
|
|
|
|
|
+ Duration(milliseconds: 2000),
|
|
|
|
|
+ () async {
|
|
|
|
|
+ safeSetState(() {});
|
|
|
|
|
+ },
|
|
|
|
|
+ ),
|
|
|
|
|
+ autofocus: false,
|
|
|
|
|
+ enabled: true,
|
|
|
|
|
+ obscureText: false,
|
|
|
|
|
+ decoration: InputDecoration(
|
|
|
|
|
+ isDense: true,
|
|
|
|
|
+ labelStyle:
|
|
|
|
|
+ FlutterFlowTheme.of(context).labelMedium.override(
|
|
|
|
|
+ font: GoogleFonts.roboto(
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .labelMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .labelMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ letterSpacing: 0.0,
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .labelMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .labelMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ hintText: FFLocalizations.of(context).getText(
|
|
|
|
|
+ 'nm6s2mkp' /* Zoek op naam */,
|
|
|
|
|
+ ),
|
|
|
|
|
+ hintStyle:
|
|
|
|
|
+ FlutterFlowTheme.of(context).labelMedium.override(
|
|
|
|
|
+ font: GoogleFonts.roboto(
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .labelMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .labelMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ letterSpacing: 0.0,
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .labelMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .labelMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ enabledBorder: OutlineInputBorder(
|
|
|
|
|
+ borderSide: BorderSide(
|
|
|
|
|
+ color: Color(0x00000000),
|
|
|
|
|
+ width: 1.0,
|
|
|
|
|
+ ),
|
|
|
|
|
+ borderRadius: BorderRadius.circular(8.0),
|
|
|
|
|
+ ),
|
|
|
|
|
+ focusedBorder: OutlineInputBorder(
|
|
|
|
|
+ borderSide: BorderSide(
|
|
|
|
|
+ color: Color(0x00000000),
|
|
|
|
|
+ width: 1.0,
|
|
|
|
|
+ ),
|
|
|
|
|
+ borderRadius: BorderRadius.circular(8.0),
|
|
|
|
|
+ ),
|
|
|
|
|
+ errorBorder: OutlineInputBorder(
|
|
|
|
|
+ borderSide: BorderSide(
|
|
|
|
|
+ color: FlutterFlowTheme.of(context).error,
|
|
|
|
|
+ width: 1.0,
|
|
|
|
|
+ ),
|
|
|
|
|
+ borderRadius: BorderRadius.circular(8.0),
|
|
|
|
|
+ ),
|
|
|
|
|
+ focusedErrorBorder: OutlineInputBorder(
|
|
|
|
|
+ borderSide: BorderSide(
|
|
|
|
|
+ color: FlutterFlowTheme.of(context).error,
|
|
|
|
|
+ width: 1.0,
|
|
|
|
|
+ ),
|
|
|
|
|
+ borderRadius: BorderRadius.circular(8.0),
|
|
|
|
|
+ ),
|
|
|
|
|
+ filled: true,
|
|
|
|
|
+ fillColor: FlutterFlowTheme.of(context).secondaryBackground,
|
|
|
|
|
+ ),
|
|
|
|
|
+ style: FlutterFlowTheme.of(context).bodyMedium.override(
|
|
|
|
|
+ font: GoogleFonts.roboto(
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle:
|
|
|
|
|
+ FlutterFlowTheme.of(context).bodyMedium.fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ letterSpacing: 0.0,
|
|
|
|
|
+ fontWeight:
|
|
|
|
|
+ FlutterFlowTheme.of(context).bodyMedium.fontWeight,
|
|
|
|
|
+ fontStyle:
|
|
|
|
|
+ FlutterFlowTheme.of(context).bodyMedium.fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ cursorColor: FlutterFlowTheme.of(context).primaryText,
|
|
|
|
|
+ enableInteractiveSelection: true,
|
|
|
|
|
+ validator:
|
|
|
|
|
+ _model.textControllerValidator.asValidator(context),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
Expanded(
|
|
Expanded(
|
|
|
child: Column(
|
|
child: Column(
|
|
|
children: [
|
|
children: [
|
|
@@ -342,15 +457,21 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
|
|
|
|
|
|
|
|
return Builder(
|
|
return Builder(
|
|
|
builder: (context) {
|
|
builder: (context) {
|
|
|
- final horecagelegenheden =
|
|
|
|
|
- (HorecagelegenheidoverzichtCall
|
|
|
|
|
|
|
+ final horecagelegenheden = functions
|
|
|
|
|
+ .filterHorecagelegenheden(
|
|
|
|
|
+ HorecagelegenheidoverzichtCall
|
|
|
.items(
|
|
.items(
|
|
|
- staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
|
|
- .jsonBody,
|
|
|
|
|
- )?.toList() ??
|
|
|
|
|
- [])
|
|
|
|
|
- .take(1000)
|
|
|
|
|
- .toList();
|
|
|
|
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
|
|
+ .jsonBody,
|
|
|
|
|
+ )!
|
|
|
|
|
+ .toList(),
|
|
|
|
|
+ _model.textController.text,
|
|
|
|
|
+ '',
|
|
|
|
|
+ '\$.titel',
|
|
|
|
|
+ '\$.categorie')
|
|
|
|
|
+ .toList()
|
|
|
|
|
+ .take(1000)
|
|
|
|
|
+ .toList();
|
|
|
if (horecagelegenheden.isEmpty) {
|
|
if (horecagelegenheden.isEmpty) {
|
|
|
return Center(
|
|
return Center(
|
|
|
child: Image.asset(
|
|
child: Image.asset(
|
|
@@ -539,12 +660,20 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
|
|
|
return Builder(
|
|
return Builder(
|
|
|
builder: (context) {
|
|
builder: (context) {
|
|
|
final horecagelegenheden =
|
|
final horecagelegenheden =
|
|
|
- (HorecagelegenheidoverzichtCall
|
|
|
|
|
- .items(
|
|
|
|
|
|
|
+ functions
|
|
|
|
|
+ .filterHorecagelegenheden(
|
|
|
|
|
+ HorecagelegenheidoverzichtCall
|
|
|
|
|
+ .items(
|
|
|
staggeredViewHorecagelegenheidoverzichtResponse
|
|
staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
.jsonBody,
|
|
.jsonBody,
|
|
|
- )?.toList() ??
|
|
|
|
|
- [])
|
|
|
|
|
|
|
+ )!
|
|
|
|
|
+ .toList(),
|
|
|
|
|
+ _model.textController
|
|
|
|
|
+ .text,
|
|
|
|
|
+ '',
|
|
|
|
|
+ '\$.titel',
|
|
|
|
|
+ '\$.categorie')
|
|
|
|
|
+ .toList()
|
|
|
.take(1000)
|
|
.take(1000)
|
|
|
.toList();
|
|
.toList();
|
|
|
if (horecagelegenheden.isEmpty) {
|
|
if (horecagelegenheden.isEmpty) {
|
|
@@ -764,12 +893,20 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
|
|
|
return Builder(
|
|
return Builder(
|
|
|
builder: (context) {
|
|
builder: (context) {
|
|
|
final horecagelegenheden =
|
|
final horecagelegenheden =
|
|
|
- (HorecagelegenheidoverzichtCall
|
|
|
|
|
- .items(
|
|
|
|
|
|
|
+ functions
|
|
|
|
|
+ .filterHorecagelegenheden(
|
|
|
|
|
+ HorecagelegenheidoverzichtCall
|
|
|
|
|
+ .items(
|
|
|
staggeredViewHorecagelegenheidoverzichtResponse
|
|
staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
.jsonBody,
|
|
.jsonBody,
|
|
|
- )?.toList() ??
|
|
|
|
|
- [])
|
|
|
|
|
|
|
+ )!
|
|
|
|
|
+ .toList(),
|
|
|
|
|
+ _model.textController
|
|
|
|
|
+ .text,
|
|
|
|
|
+ '',
|
|
|
|
|
+ '\$.titel',
|
|
|
|
|
+ '\$.categorie')
|
|
|
|
|
+ .toList()
|
|
|
.take(1000)
|
|
.take(1000)
|
|
|
.toList();
|
|
.toList();
|
|
|
if (horecagelegenheden.isEmpty) {
|
|
if (horecagelegenheden.isEmpty) {
|
|
@@ -989,12 +1126,20 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
|
|
|
return Builder(
|
|
return Builder(
|
|
|
builder: (context) {
|
|
builder: (context) {
|
|
|
final horecagelegenheden =
|
|
final horecagelegenheden =
|
|
|
- (HorecagelegenheidoverzichtCall
|
|
|
|
|
- .items(
|
|
|
|
|
|
|
+ functions
|
|
|
|
|
+ .filterHorecagelegenheden(
|
|
|
|
|
+ HorecagelegenheidoverzichtCall
|
|
|
|
|
+ .items(
|
|
|
staggeredViewHorecagelegenheidoverzichtResponse
|
|
staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
.jsonBody,
|
|
.jsonBody,
|
|
|
- )?.toList() ??
|
|
|
|
|
- [])
|
|
|
|
|
|
|
+ )!
|
|
|
|
|
+ .toList(),
|
|
|
|
|
+ _model.textController
|
|
|
|
|
+ .text,
|
|
|
|
|
+ '',
|
|
|
|
|
+ '\$.titel',
|
|
|
|
|
+ '\$.categorie')
|
|
|
|
|
+ .toList()
|
|
|
.take(1000)
|
|
.take(1000)
|
|
|
.toList();
|
|
.toList();
|
|
|
if (horecagelegenheden.isEmpty) {
|
|
if (horecagelegenheden.isEmpty) {
|
|
@@ -1215,12 +1360,20 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
|
|
|
return Builder(
|
|
return Builder(
|
|
|
builder: (context) {
|
|
builder: (context) {
|
|
|
final horecagelegenheden =
|
|
final horecagelegenheden =
|
|
|
- (HorecagelegenheidoverzichtCall
|
|
|
|
|
- .items(
|
|
|
|
|
|
|
+ functions
|
|
|
|
|
+ .filterHorecagelegenheden(
|
|
|
|
|
+ HorecagelegenheidoverzichtCall
|
|
|
|
|
+ .items(
|
|
|
staggeredViewHorecagelegenheidoverzichtResponse
|
|
staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
.jsonBody,
|
|
.jsonBody,
|
|
|
- )?.toList() ??
|
|
|
|
|
- [])
|
|
|
|
|
|
|
+ )!
|
|
|
|
|
+ .toList(),
|
|
|
|
|
+ _model.textController
|
|
|
|
|
+ .text,
|
|
|
|
|
+ '',
|
|
|
|
|
+ '\$.titel',
|
|
|
|
|
+ '\$.categorie')
|
|
|
|
|
+ .toList()
|
|
|
.take(1000)
|
|
.take(1000)
|
|
|
.toList();
|
|
.toList();
|
|
|
if (horecagelegenheden.isEmpty) {
|
|
if (horecagelegenheden.isEmpty) {
|
|
@@ -1440,12 +1593,20 @@ class _HorecagelegenhedenOverzichtProvinciePageWidgetState
|
|
|
return Builder(
|
|
return Builder(
|
|
|
builder: (context) {
|
|
builder: (context) {
|
|
|
final horecagelegenheden =
|
|
final horecagelegenheden =
|
|
|
- (HorecagelegenheidoverzichtCall
|
|
|
|
|
- .items(
|
|
|
|
|
|
|
+ functions
|
|
|
|
|
+ .filterHorecagelegenheden(
|
|
|
|
|
+ HorecagelegenheidoverzichtCall
|
|
|
|
|
+ .items(
|
|
|
staggeredViewHorecagelegenheidoverzichtResponse
|
|
staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
.jsonBody,
|
|
.jsonBody,
|
|
|
- )?.toList() ??
|
|
|
|
|
- [])
|
|
|
|
|
|
|
+ )!
|
|
|
|
|
+ .toList(),
|
|
|
|
|
+ _model.textController
|
|
|
|
|
+ .text,
|
|
|
|
|
+ '',
|
|
|
|
|
+ '\$.titel',
|
|
|
|
|
+ '\$.categorie')
|
|
|
|
|
+ .toList()
|
|
|
.take(1000)
|
|
.take(1000)
|
|
|
.toList();
|
|
.toList();
|
|
|
if (horecagelegenheden.isEmpty) {
|
|
if (horecagelegenheden.isEmpty) {
|