|
|
@@ -0,0 +1,2093 @@
|
|
|
+import '/backend/api_requests/api_calls.dart';
|
|
|
+import '/components/header_buttons_component_widget.dart';
|
|
|
+import '/flutter_flow/flutter_flow_theme.dart';
|
|
|
+import '/flutter_flow/flutter_flow_util.dart';
|
|
|
+import '/flutter_flow/flutter_flow_widgets.dart';
|
|
|
+import '/horecagelegenhedenoverzicht/horecagelegenheidoverzicht_kaart/horecagelegenheidoverzicht_kaart_widget.dart';
|
|
|
+import '/shared/drawer_component/drawer_component_widget.dart';
|
|
|
+import 'dart:ui';
|
|
|
+import '/custom_code/actions/index.dart' as actions;
|
|
|
+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/scheduler.dart';
|
|
|
+import 'package:flutter_spinkit/flutter_spinkit.dart';
|
|
|
+import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
|
|
+import 'package:google_fonts/google_fonts.dart';
|
|
|
+import 'package:provider/provider.dart';
|
|
|
+import 'horecagelegenheden_overzicht_copy3_model.dart';
|
|
|
+export 'horecagelegenheden_overzicht_copy3_model.dart';
|
|
|
+
|
|
|
+class HorecagelegenhedenOverzichtCopy3Widget extends StatefulWidget {
|
|
|
+ const HorecagelegenhedenOverzichtCopy3Widget({
|
|
|
+ super.key,
|
|
|
+ required this.plaats,
|
|
|
+ });
|
|
|
+
|
|
|
+ final String? plaats;
|
|
|
+
|
|
|
+ static String routeName = 'HorecagelegenhedenOverzichtCopy3';
|
|
|
+ static String routePath = '/horecagelegenhedenOverzichtCopy3';
|
|
|
+
|
|
|
+ @override
|
|
|
+ State<HorecagelegenhedenOverzichtCopy3Widget> createState() =>
|
|
|
+ _HorecagelegenhedenOverzichtCopy3WidgetState();
|
|
|
+}
|
|
|
+
|
|
|
+class _HorecagelegenhedenOverzichtCopy3WidgetState
|
|
|
+ extends State<HorecagelegenhedenOverzichtCopy3Widget>
|
|
|
+ with TickerProviderStateMixin, RouteAware {
|
|
|
+ late HorecagelegenhedenOverzichtCopy3Model _model;
|
|
|
+
|
|
|
+ final scaffoldKey = GlobalKey<ScaffoldState>();
|
|
|
+
|
|
|
+ @override
|
|
|
+ void initState() {
|
|
|
+ super.initState();
|
|
|
+ _model =
|
|
|
+ createModel(context, () => HorecagelegenhedenOverzichtCopy3Model());
|
|
|
+
|
|
|
+ // On page load action.
|
|
|
+ SchedulerBinding.instance.addPostFrameCallback((_) async {
|
|
|
+ _model.resultHorecaActiviteiten =
|
|
|
+ await actions.fetchAlleHorecagelegenheden(
|
|
|
+ '17969',
|
|
|
+ widget!.plaats!,
|
|
|
+ 'services_1',
|
|
|
+ );
|
|
|
+ _model.alleActiviteiten =
|
|
|
+ _model.resultHorecaActiviteiten!.toList().cast<dynamic>();
|
|
|
+ safeSetState(() {});
|
|
|
+ });
|
|
|
+
|
|
|
+ _model.textController1 ??= TextEditingController()
|
|
|
+ ..addListener(() {
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+ });
|
|
|
+ _model.textFieldFocusNode1 ??= FocusNode();
|
|
|
+
|
|
|
+ _model.tabBarController = TabController(
|
|
|
+ vsync: this,
|
|
|
+ length: 6,
|
|
|
+ initialIndex: 0,
|
|
|
+ )
|
|
|
+ ..addListener(() => safeSetState(() {}))
|
|
|
+ ..addListener(() {
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+ });
|
|
|
+
|
|
|
+ _model.textController2 ??= TextEditingController()
|
|
|
+ ..addListener(() {
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+ });
|
|
|
+ _model.textFieldFocusNode2 ??= FocusNode();
|
|
|
+
|
|
|
+ _model.textController3 ??= TextEditingController()
|
|
|
+ ..addListener(() {
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+ });
|
|
|
+ _model.textFieldFocusNode3 ??= FocusNode();
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void dispose() {
|
|
|
+ routeObserver.unsubscribe(this);
|
|
|
+
|
|
|
+ _model.dispose();
|
|
|
+
|
|
|
+ super.dispose();
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void didUpdateWidget(HorecagelegenhedenOverzichtCopy3Widget oldWidget) {
|
|
|
+ super.didUpdateWidget(oldWidget);
|
|
|
+ _model.widget = widget;
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void didChangeDependencies() {
|
|
|
+ super.didChangeDependencies();
|
|
|
+ final route = DebugModalRoute.of(context);
|
|
|
+ if (route != null) {
|
|
|
+ routeObserver.subscribe(this, route);
|
|
|
+ }
|
|
|
+ debugLogGlobalProperty(context);
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void didPopNext() {
|
|
|
+ if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
|
|
|
+ setState(() => _model.isRouteVisible = true);
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void didPush() {
|
|
|
+ if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
|
|
|
+ setState(() => _model.isRouteVisible = true);
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void didPop() {
|
|
|
+ _model.isRouteVisible = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void didPushNext() {
|
|
|
+ _model.isRouteVisible = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ Widget build(BuildContext context) {
|
|
|
+ DebugFlutterFlowModelContext.maybeOf(context)
|
|
|
+ ?.parentModelCallback
|
|
|
+ ?.call(_model);
|
|
|
+ context.watch<FFAppState>();
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels1.clear();
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels2.clear();
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels3.clear();
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels4.clear();
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels5.clear();
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels6.clear();
|
|
|
+
|
|
|
+ return GestureDetector(
|
|
|
+ onTap: () {
|
|
|
+ FocusScope.of(context).unfocus();
|
|
|
+ FocusManager.instance.primaryFocus?.unfocus();
|
|
|
+ },
|
|
|
+ child: Scaffold(
|
|
|
+ key: scaffoldKey,
|
|
|
+ backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
|
|
+ drawer: Drawer(
|
|
|
+ elevation: 16.0,
|
|
|
+ child: wrapWithModel(
|
|
|
+ model: _model.drawerComponentModel,
|
|
|
+ updateCallback: () => safeSetState(() {}),
|
|
|
+ child: Builder(builder: (_) {
|
|
|
+ return DebugFlutterFlowModelContext(
|
|
|
+ rootModel: _model.rootModel,
|
|
|
+ child: DrawerComponentWidget(),
|
|
|
+ );
|
|
|
+ }),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ appBar: PreferredSize(
|
|
|
+ preferredSize: Size.fromHeight(80.0),
|
|
|
+ child: AppBar(
|
|
|
+ backgroundColor: FlutterFlowTheme.of(context).info,
|
|
|
+ iconTheme:
|
|
|
+ IconThemeData(color: FlutterFlowTheme.of(context).secondary),
|
|
|
+ automaticallyImplyLeading: false,
|
|
|
+ actions: [],
|
|
|
+ flexibleSpace: FlexibleSpaceBar(
|
|
|
+ background: wrapWithModel(
|
|
|
+ model: _model.headerButtonsComponentModel,
|
|
|
+ updateCallback: () => safeSetState(() {}),
|
|
|
+ child: Builder(builder: (_) {
|
|
|
+ return DebugFlutterFlowModelContext(
|
|
|
+ rootModel: _model.rootModel,
|
|
|
+ child: HeaderButtonsComponentWidget(),
|
|
|
+ );
|
|
|
+ }),
|
|
|
+ ),
|
|
|
+ centerTitle: true,
|
|
|
+ expandedTitleScale: 1.0,
|
|
|
+ ),
|
|
|
+ bottom: PreferredSize(
|
|
|
+ preferredSize: Size.fromHeight(70.0),
|
|
|
+ child: Container(),
|
|
|
+ ),
|
|
|
+ toolbarHeight: MediaQuery.sizeOf(context).height * 0.25,
|
|
|
+ elevation: 2.0,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ body: SafeArea(
|
|
|
+ top: true,
|
|
|
+ child: Column(
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
+ children: [
|
|
|
+ Container(
|
|
|
+ width: 200.0,
|
|
|
+ child: TextFormField(
|
|
|
+ controller: _model.textController1,
|
|
|
+ focusNode: _model.textFieldFocusNode1,
|
|
|
+ onChanged: (_) => EasyDebounce.debounce(
|
|
|
+ '_model.textController1',
|
|
|
+ Duration(milliseconds: 2000),
|
|
|
+ () async {
|
|
|
+ _model.zoektermActiviteiten = _model.textController1.text;
|
|
|
+ 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(
|
|
|
+ 'qqb1howd' /* TextField */,
|
|
|
+ ),
|
|
|
+ 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.textController1Validator.asValidator(context),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Expanded(
|
|
|
+ child: Container(
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ boxShadow: [
|
|
|
+ BoxShadow(
|
|
|
+ blurRadius: 4.0,
|
|
|
+ color: Color(0x33000000),
|
|
|
+ offset: Offset(
|
|
|
+ 0.0,
|
|
|
+ 2.0,
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ child: Column(
|
|
|
+ children: [
|
|
|
+ Align(
|
|
|
+ alignment: Alignment(-1.0, 0),
|
|
|
+ child: TabBar(
|
|
|
+ isScrollable: true,
|
|
|
+ tabAlignment: TabAlignment.start,
|
|
|
+ labelColor: FlutterFlowTheme.of(context).primaryText,
|
|
|
+ unselectedLabelColor:
|
|
|
+ FlutterFlowTheme.of(context).secondaryText,
|
|
|
+ labelStyle:
|
|
|
+ FlutterFlowTheme.of(context).titleMedium.override(
|
|
|
+ font: GoogleFonts.roboto(
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
+ .titleMedium
|
|
|
+ .fontWeight,
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
+ .titleMedium
|
|
|
+ .fontStyle,
|
|
|
+ ),
|
|
|
+ letterSpacing: 0.0,
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
+ .titleMedium
|
|
|
+ .fontWeight,
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
+ .titleMedium
|
|
|
+ .fontStyle,
|
|
|
+ ),
|
|
|
+ unselectedLabelStyle:
|
|
|
+ FlutterFlowTheme.of(context).titleMedium.override(
|
|
|
+ font: GoogleFonts.roboto(
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
+ .titleMedium
|
|
|
+ .fontWeight,
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
+ .titleMedium
|
|
|
+ .fontStyle,
|
|
|
+ ),
|
|
|
+ letterSpacing: 0.0,
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
+ .titleMedium
|
|
|
+ .fontWeight,
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
+ .titleMedium
|
|
|
+ .fontStyle,
|
|
|
+ ),
|
|
|
+ indicatorColor:
|
|
|
+ FlutterFlowTheme.of(context).secondary,
|
|
|
+ tabs: [
|
|
|
+ Tab(
|
|
|
+ text: FFLocalizations.of(context).getText(
|
|
|
+ '8gwyy71q' /* Activiteiten */,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Tab(
|
|
|
+ text: FFLocalizations.of(context).getText(
|
|
|
+ 'b8oov17m' /* Cultuur */,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Tab(
|
|
|
+ text: FFLocalizations.of(context).getText(
|
|
|
+ 'hnnqfnhk' /* Eetgelegenheden */,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Tab(
|
|
|
+ text: FFLocalizations.of(context).getText(
|
|
|
+ 'ykjsgvsf' /* Overnachten */,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Tab(
|
|
|
+ text: FFLocalizations.of(context).getText(
|
|
|
+ 'waxjo567' /* Uitgaan */,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Tab(
|
|
|
+ text: FFLocalizations.of(context).getText(
|
|
|
+ 'er4hrrph' /* Verhuur, catering */,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ controller: _model.tabBarController,
|
|
|
+ onTap: (i) async {
|
|
|
+ [
|
|
|
+ () async {},
|
|
|
+ () async {
|
|
|
+ _model.tabCultuurGeladen = true;
|
|
|
+ safeSetState(() {});
|
|
|
+ _model.resultHorecaCultuur =
|
|
|
+ await actions.fetchAlleHorecagelegenheden(
|
|
|
+ '17963',
|
|
|
+ widget!.plaats!,
|
|
|
+ 'services_1',
|
|
|
+ );
|
|
|
+ _model.alleCultuur = _model.resultHorecaCultuur!
|
|
|
+ .toList()
|
|
|
+ .cast<dynamic>();
|
|
|
+ safeSetState(() {});
|
|
|
+
|
|
|
+ safeSetState(() {});
|
|
|
+ },
|
|
|
+ () async {
|
|
|
+ _model.tabEetgelegenhedenGeladen = true;
|
|
|
+ safeSetState(() {});
|
|
|
+ _model.resultHorecaEetgelegenheden =
|
|
|
+ await actions.fetchAlleHorecagelegenheden(
|
|
|
+ '34',
|
|
|
+ widget!.plaats!,
|
|
|
+ 'services_1',
|
|
|
+ );
|
|
|
+ _model.alleEetgelegenheden = _model
|
|
|
+ .resultHorecaEetgelegenheden!
|
|
|
+ .toList()
|
|
|
+ .cast<dynamic>();
|
|
|
+ safeSetState(() {});
|
|
|
+
|
|
|
+ safeSetState(() {});
|
|
|
+ },
|
|
|
+ () async {
|
|
|
+ _model.tabOvernachtenGeladen = true;
|
|
|
+ safeSetState(() {});
|
|
|
+ _model.resultHorecaOvernachten =
|
|
|
+ await actions.fetchAlleHorecagelegenheden(
|
|
|
+ '17965',
|
|
|
+ widget!.plaats!,
|
|
|
+ 'services_1',
|
|
|
+ );
|
|
|
+ _model.alleOvernachten = _model
|
|
|
+ .resultHorecaOvernachten!
|
|
|
+ .toList()
|
|
|
+ .cast<dynamic>();
|
|
|
+ safeSetState(() {});
|
|
|
+
|
|
|
+ safeSetState(() {});
|
|
|
+ },
|
|
|
+ () async {
|
|
|
+ _model.tabUitgaanGeladen = true;
|
|
|
+ safeSetState(() {});
|
|
|
+ _model.resultHorecaUitgaansgelegenheden =
|
|
|
+ await actions.fetchAlleHorecagelegenheden(
|
|
|
+ '17967',
|
|
|
+ widget!.plaats!,
|
|
|
+ 'services_1',
|
|
|
+ );
|
|
|
+ _model.alleUitgaan = _model
|
|
|
+ .resultHorecaUitgaansgelegenheden!
|
|
|
+ .toList()
|
|
|
+ .cast<dynamic>();
|
|
|
+ safeSetState(() {});
|
|
|
+
|
|
|
+ safeSetState(() {});
|
|
|
+ },
|
|
|
+ () async {
|
|
|
+ _model.tabVerhuurcateringGeladen = true;
|
|
|
+ safeSetState(() {});
|
|
|
+ _model.resultHorecaVerhuur =
|
|
|
+ await actions.fetchAlleHorecagelegenheden(
|
|
|
+ '17968',
|
|
|
+ widget!.plaats!,
|
|
|
+ 'services_1',
|
|
|
+ );
|
|
|
+ _model.alleVerhuurCatering = _model
|
|
|
+ .resultHorecaVerhuur!
|
|
|
+ .toList()
|
|
|
+ .cast<dynamic>();
|
|
|
+ safeSetState(() {});
|
|
|
+
|
|
|
+ safeSetState(() {});
|
|
|
+ }
|
|
|
+ ][i]();
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Expanded(
|
|
|
+ child: TabBarView(
|
|
|
+ controller: _model.tabBarController,
|
|
|
+ children: [
|
|
|
+ Column(
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
+ children: [
|
|
|
+ Container(
|
|
|
+ width: 200.0,
|
|
|
+ child: TextFormField(
|
|
|
+ controller: _model.textController2,
|
|
|
+ focusNode: _model.textFieldFocusNode2,
|
|
|
+ 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(
|
|
|
+ 'bm5n3dfq' /* TextField */,
|
|
|
+ ),
|
|
|
+ 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.textController2Validator
|
|
|
+ .asValidator(context),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Expanded(
|
|
|
+ child: FutureBuilder<ApiCallResponse>(
|
|
|
+ future: HorecagelegenheidoverzichtCall.call(
|
|
|
+ horcat: '17969',
|
|
|
+ townid: widget!.plaats,
|
|
|
+ ),
|
|
|
+ builder: (context, snapshot) {
|
|
|
+ // Customize what your widget looks like when it's loading.
|
|
|
+ if (!snapshot.hasData) {
|
|
|
+ return Center(
|
|
|
+ child: SizedBox(
|
|
|
+ width: 80.0,
|
|
|
+ height: 80.0,
|
|
|
+ child: SpinKitFadingCircle(
|
|
|
+ color:
|
|
|
+ FlutterFlowTheme.of(context)
|
|
|
+ .primary,
|
|
|
+ size: 80.0,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ final staggeredViewHorecagelegenheidoverzichtResponse =
|
|
|
+ snapshot.data!;
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_statusCode_StaggeredView_62ar22xa'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .statusCode,
|
|
|
+ ParamType.int,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'int',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_responseBody_StaggeredView_62ar22xa'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .bodyText,
|
|
|
+ ParamType.String,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'String',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return Builder(
|
|
|
+ builder: (context) {
|
|
|
+ final horecagelegenheden = functions
|
|
|
+ .filterHorecagelegenheden(
|
|
|
+ _model.alleActiviteiten
|
|
|
+ .toList(),
|
|
|
+ _model.textController1.text,
|
|
|
+ _model
|
|
|
+ .categorieFilterActiviteiten,
|
|
|
+ '\$.titel',
|
|
|
+ '\$.categorie')
|
|
|
+ .toList()
|
|
|
+ .take(25)
|
|
|
+ .toList();
|
|
|
+ _model.debugGeneratorVariables[
|
|
|
+ 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ horecagelegenheden.take(100),
|
|
|
+ ParamType.JSON,
|
|
|
+ isList: true,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'dynamic',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return MasonryGridView.builder(
|
|
|
+ gridDelegate:
|
|
|
+ SliverSimpleGridDelegateWithFixedCrossAxisCount(
|
|
|
+ crossAxisCount: () {
|
|
|
+ if (MediaQuery.sizeOf(context)
|
|
|
+ .width <
|
|
|
+ kBreakpointSmall) {
|
|
|
+ return 1;
|
|
|
+ } else if (MediaQuery.sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointMedium) {
|
|
|
+ return 1;
|
|
|
+ } else if (MediaQuery.sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointLarge) {
|
|
|
+ return 2;
|
|
|
+ } else {
|
|
|
+ return 3;
|
|
|
+ }
|
|
|
+ }(),
|
|
|
+ ),
|
|
|
+ crossAxisSpacing: 12.0,
|
|
|
+ mainAxisSpacing: 12.0,
|
|
|
+ itemCount:
|
|
|
+ horecagelegenheden.length,
|
|
|
+ itemBuilder: (context,
|
|
|
+ horecagelegenhedenIndex) {
|
|
|
+ final horecagelegenhedenItem =
|
|
|
+ horecagelegenheden[
|
|
|
+ horecagelegenhedenIndex];
|
|
|
+ return Container(
|
|
|
+ width: 600.0,
|
|
|
+ height: 225.0,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: FlutterFlowTheme.of(
|
|
|
+ context)
|
|
|
+ .secondaryBackground,
|
|
|
+ ),
|
|
|
+ child: InkWell(
|
|
|
+ splashColor:
|
|
|
+ Colors.transparent,
|
|
|
+ focusColor:
|
|
|
+ Colors.transparent,
|
|
|
+ hoverColor:
|
|
|
+ Colors.transparent,
|
|
|
+ highlightColor:
|
|
|
+ Colors.transparent,
|
|
|
+ onTap: () async {
|
|
|
+ context.pushNamed(
|
|
|
+ HorecagelegenheidCurrentWidget
|
|
|
+ .routeName,
|
|
|
+ queryParameters: {
|
|
|
+ 'nid': serializeParam(
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ ParamType.String,
|
|
|
+ ),
|
|
|
+ }.withoutNulls,
|
|
|
+ );
|
|
|
+ },
|
|
|
+ child: Builder(builder: (_) {
|
|
|
+ return DebugFlutterFlowModelContext(
|
|
|
+ rootModel:
|
|
|
+ _model.rootModel,
|
|
|
+ parentModelCallback: (m) {
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels1[
|
|
|
+ 'Keyso1_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
|
|
|
+ },
|
|
|
+ child:
|
|
|
+ HorecagelegenheidoverzichtKaartWidget(
|
|
|
+ key: Key(
|
|
|
+ 'Keyso1_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
|
|
|
+ titel: getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.titel''',
|
|
|
+ ).toString(),
|
|
|
+ logo: getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.logo''',
|
|
|
+ ).toString(),
|
|
|
+ nid: getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ adres: getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.adres''',
|
|
|
+ ).toString(),
|
|
|
+ plaats: getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.plaats''',
|
|
|
+ ).toString(),
|
|
|
+ categorie:
|
|
|
+ (getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.categorie''',
|
|
|
+ true,
|
|
|
+ ) as List?)
|
|
|
+ ?.map<String>(
|
|
|
+ (e) => e
|
|
|
+ .toString())
|
|
|
+ .toList()
|
|
|
+ .cast<String>(),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ Column(
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
+ children: [
|
|
|
+ Expanded(
|
|
|
+ child: FutureBuilder<ApiCallResponse>(
|
|
|
+ future: HorecagelegenheidoverzichtCall.call(
|
|
|
+ horcat: '17963',
|
|
|
+ townid: widget!.plaats,
|
|
|
+ ),
|
|
|
+ builder: (context, snapshot) {
|
|
|
+ // Customize what your widget looks like when it's loading.
|
|
|
+ if (!snapshot.hasData) {
|
|
|
+ return Center(
|
|
|
+ child: SizedBox(
|
|
|
+ width: 80.0,
|
|
|
+ height: 80.0,
|
|
|
+ child: SpinKitFadingCircle(
|
|
|
+ color:
|
|
|
+ FlutterFlowTheme.of(context)
|
|
|
+ .primary,
|
|
|
+ size: 80.0,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ final staggeredViewHorecagelegenheidoverzichtResponse =
|
|
|
+ snapshot.data!;
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_statusCode_StaggeredView_4wdvafrs'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .statusCode,
|
|
|
+ ParamType.int,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'int',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_responseBody_StaggeredView_4wdvafrs'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .bodyText,
|
|
|
+ ParamType.String,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'String',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return Builder(
|
|
|
+ builder: (context) {
|
|
|
+ final horecagelegenhedenCultuur =
|
|
|
+ functions
|
|
|
+ .filterHorecagelegenheden(
|
|
|
+ _model.alleCultuur
|
|
|
+ .toList(),
|
|
|
+ _model
|
|
|
+ .textController1.text,
|
|
|
+ _model
|
|
|
+ .categorieFilterActiviteiten,
|
|
|
+ '\$.titel',
|
|
|
+ '\$categorie')
|
|
|
+ .toList()
|
|
|
+ .take(25)
|
|
|
+ .toList();
|
|
|
+ _model.debugGeneratorVariables[
|
|
|
+ 'horecagelegenhedenCultuur${horecagelegenhedenCultuur.length > 100 ? ' (first 100)' : ''}'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ horecagelegenhedenCultuur.take(100),
|
|
|
+ ParamType.JSON,
|
|
|
+ isList: true,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'dynamic',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return MasonryGridView.builder(
|
|
|
+ gridDelegate:
|
|
|
+ SliverSimpleGridDelegateWithFixedCrossAxisCount(
|
|
|
+ crossAxisCount: 2,
|
|
|
+ ),
|
|
|
+ crossAxisSpacing: 10.0,
|
|
|
+ mainAxisSpacing: 10.0,
|
|
|
+ itemCount: horecagelegenhedenCultuur
|
|
|
+ .length,
|
|
|
+ itemBuilder: (context,
|
|
|
+ horecagelegenhedenCultuurIndex) {
|
|
|
+ final horecagelegenhedenCultuurItem =
|
|
|
+ horecagelegenhedenCultuur[
|
|
|
+ horecagelegenhedenCultuurIndex];
|
|
|
+ return Container(
|
|
|
+ width: 100.0,
|
|
|
+ height: 100.0,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: FlutterFlowTheme.of(
|
|
|
+ context)
|
|
|
+ .secondaryBackground,
|
|
|
+ ),
|
|
|
+ child: InkWell(
|
|
|
+ splashColor:
|
|
|
+ Colors.transparent,
|
|
|
+ focusColor:
|
|
|
+ Colors.transparent,
|
|
|
+ hoverColor:
|
|
|
+ Colors.transparent,
|
|
|
+ highlightColor:
|
|
|
+ Colors.transparent,
|
|
|
+ onTap: () async {
|
|
|
+ context.pushNamed(
|
|
|
+ HorecagelegenheidCurrentWidget
|
|
|
+ .routeName,
|
|
|
+ queryParameters: {
|
|
|
+ 'nid': serializeParam(
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenCultuurItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ ParamType.String,
|
|
|
+ ),
|
|
|
+ }.withoutNulls,
|
|
|
+ );
|
|
|
+ },
|
|
|
+ child: Builder(builder: (_) {
|
|
|
+ return DebugFlutterFlowModelContext(
|
|
|
+ rootModel:
|
|
|
+ _model.rootModel,
|
|
|
+ parentModelCallback: (m) {
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels2[
|
|
|
+ 'Keyvgj_${horecagelegenhedenCultuurIndex}_of_${horecagelegenhedenCultuur.length}'] = m;
|
|
|
+ },
|
|
|
+ child:
|
|
|
+ HorecagelegenheidoverzichtKaartWidget(
|
|
|
+ key: Key(
|
|
|
+ 'Keyvgj_${horecagelegenhedenCultuurIndex}_of_${horecagelegenhedenCultuur.length}'),
|
|
|
+ titel: getJsonField(
|
|
|
+ horecagelegenhedenCultuurItem,
|
|
|
+ r'''$.titel''',
|
|
|
+ ).toString(),
|
|
|
+ logo: getJsonField(
|
|
|
+ horecagelegenhedenCultuurItem,
|
|
|
+ r'''$.logo''',
|
|
|
+ ).toString(),
|
|
|
+ nid: getJsonField(
|
|
|
+ horecagelegenhedenCultuurItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ adres: getJsonField(
|
|
|
+ horecagelegenhedenCultuurItem,
|
|
|
+ r'''$.adres''',
|
|
|
+ ).toString(),
|
|
|
+ plaats: getJsonField(
|
|
|
+ horecagelegenhedenCultuurItem,
|
|
|
+ r'''$.plaats''',
|
|
|
+ ).toString(),
|
|
|
+ categorie:
|
|
|
+ (getJsonField(
|
|
|
+ horecagelegenhedenCultuurItem,
|
|
|
+ r'''$.categorie''',
|
|
|
+ true,
|
|
|
+ ) as List?)
|
|
|
+ ?.map<String>(
|
|
|
+ (e) => e
|
|
|
+ .toString())
|
|
|
+ .toList()
|
|
|
+ .cast<String>(),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Container(
|
|
|
+ width: 200.0,
|
|
|
+ child: TextFormField(
|
|
|
+ controller: _model.textController3,
|
|
|
+ focusNode: _model.textFieldFocusNode3,
|
|
|
+ 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(
|
|
|
+ 'ca4yuet3' /* TextField */,
|
|
|
+ ),
|
|
|
+ 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.textController3Validator
|
|
|
+ .asValidator(context),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ Builder(
|
|
|
+ builder: (context) {
|
|
|
+ if (_model.tabEetgelegenhedenGeladen) {
|
|
|
+ return Column(
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
+ children: [
|
|
|
+ Expanded(
|
|
|
+ child: FutureBuilder<ApiCallResponse>(
|
|
|
+ future: HorecagelegenheidoverzichtCall
|
|
|
+ .call(
|
|
|
+ horcat: '34',
|
|
|
+ townid: widget!.plaats,
|
|
|
+ ),
|
|
|
+ builder: (context, snapshot) {
|
|
|
+ // Customize what your widget looks like when it's loading.
|
|
|
+ if (!snapshot.hasData) {
|
|
|
+ return Center(
|
|
|
+ child: SizedBox(
|
|
|
+ width: 80.0,
|
|
|
+ height: 80.0,
|
|
|
+ child: SpinKitFadingCircle(
|
|
|
+ color: FlutterFlowTheme.of(
|
|
|
+ context)
|
|
|
+ .primary,
|
|
|
+ size: 80.0,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ final staggeredViewHorecagelegenheidoverzichtResponse =
|
|
|
+ snapshot.data!;
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_statusCode_StaggeredView_zz9hx8f0'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .statusCode,
|
|
|
+ ParamType.int,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'int',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_responseBody_StaggeredView_zz9hx8f0'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .bodyText,
|
|
|
+ ParamType.String,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'String',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return Builder(
|
|
|
+ builder: (context) {
|
|
|
+ final horecagelegenheden = functions
|
|
|
+ .filterHorecagelegenheden(
|
|
|
+ _model
|
|
|
+ .alleEetgelegenheden
|
|
|
+ .toList(),
|
|
|
+ _model.textController1
|
|
|
+ .text,
|
|
|
+ _model
|
|
|
+ .categorieFilterActiviteiten,
|
|
|
+ '\$.titel',
|
|
|
+ '\$.categorie')
|
|
|
+ .toList()
|
|
|
+ .take(25)
|
|
|
+ .toList();
|
|
|
+ if (horecagelegenheden
|
|
|
+ .isEmpty) {
|
|
|
+ return Image.asset(
|
|
|
+ 'assets/images/logo800px.png',
|
|
|
+ );
|
|
|
+ }
|
|
|
+ _model.debugGeneratorVariables[
|
|
|
+ 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ horecagelegenheden.take(100),
|
|
|
+ ParamType.JSON,
|
|
|
+ isList: true,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'dynamic',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return MasonryGridView.builder(
|
|
|
+ gridDelegate:
|
|
|
+ SliverSimpleGridDelegateWithFixedCrossAxisCount(
|
|
|
+ crossAxisCount: () {
|
|
|
+ if (MediaQuery.sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointSmall) {
|
|
|
+ return 1;
|
|
|
+ } else if (MediaQuery
|
|
|
+ .sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointMedium) {
|
|
|
+ return 1;
|
|
|
+ } else if (MediaQuery
|
|
|
+ .sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointLarge) {
|
|
|
+ return 2;
|
|
|
+ } else {
|
|
|
+ return 3;
|
|
|
+ }
|
|
|
+ }(),
|
|
|
+ ),
|
|
|
+ crossAxisSpacing: 12.0,
|
|
|
+ mainAxisSpacing: 12.0,
|
|
|
+ itemCount:
|
|
|
+ horecagelegenheden.length,
|
|
|
+ itemBuilder: (context,
|
|
|
+ horecagelegenhedenIndex) {
|
|
|
+ final horecagelegenhedenItem =
|
|
|
+ horecagelegenheden[
|
|
|
+ horecagelegenhedenIndex];
|
|
|
+ return Container(
|
|
|
+ width: 600.0,
|
|
|
+ height: 225.0,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: FlutterFlowTheme
|
|
|
+ .of(context)
|
|
|
+ .secondaryBackground,
|
|
|
+ ),
|
|
|
+ child: InkWell(
|
|
|
+ splashColor:
|
|
|
+ Colors.transparent,
|
|
|
+ focusColor:
|
|
|
+ Colors.transparent,
|
|
|
+ hoverColor:
|
|
|
+ Colors.transparent,
|
|
|
+ highlightColor:
|
|
|
+ Colors.transparent,
|
|
|
+ onTap: () async {
|
|
|
+ context.pushNamed(
|
|
|
+ HorecagelegenheidCurrentWidget
|
|
|
+ .routeName,
|
|
|
+ queryParameters: {
|
|
|
+ 'nid':
|
|
|
+ serializeParam(
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ ParamType
|
|
|
+ .String,
|
|
|
+ ),
|
|
|
+ }.withoutNulls,
|
|
|
+ );
|
|
|
+ },
|
|
|
+ child: Builder(
|
|
|
+ builder: (_) {
|
|
|
+ return DebugFlutterFlowModelContext(
|
|
|
+ rootModel: _model
|
|
|
+ .rootModel,
|
|
|
+ parentModelCallback:
|
|
|
+ (m) {
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels3[
|
|
|
+ 'Keyk4z_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
|
|
|
+ },
|
|
|
+ child:
|
|
|
+ HorecagelegenheidoverzichtKaartWidget(
|
|
|
+ key: Key(
|
|
|
+ 'Keyk4z_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
|
|
|
+ titel:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.titel''',
|
|
|
+ ).toString(),
|
|
|
+ logo:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.logo''',
|
|
|
+ ).toString(),
|
|
|
+ nid: getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ adres:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.adres''',
|
|
|
+ ).toString(),
|
|
|
+ plaats:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.plaats''',
|
|
|
+ ).toString(),
|
|
|
+ categorie:
|
|
|
+ (getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.categorie''',
|
|
|
+ true,
|
|
|
+ ) as List?)
|
|
|
+ ?.map<String>(
|
|
|
+ (e) => e
|
|
|
+ .toString())
|
|
|
+ .toList()
|
|
|
+ .cast<
|
|
|
+ String>(),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ return Container(
|
|
|
+ width: 100.0,
|
|
|
+ height: 100.0,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: FlutterFlowTheme.of(context)
|
|
|
+ .secondaryBackground,
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ Builder(
|
|
|
+ builder: (context) {
|
|
|
+ if (_model.tabOvernachtenGeladen) {
|
|
|
+ return Column(
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
+ children: [
|
|
|
+ Expanded(
|
|
|
+ child: FutureBuilder<ApiCallResponse>(
|
|
|
+ future: HorecagelegenheidoverzichtCall
|
|
|
+ .call(
|
|
|
+ horcat: '17965',
|
|
|
+ townid: widget!.plaats,
|
|
|
+ ),
|
|
|
+ builder: (context, snapshot) {
|
|
|
+ // Customize what your widget looks like when it's loading.
|
|
|
+ if (!snapshot.hasData) {
|
|
|
+ return Center(
|
|
|
+ child: SizedBox(
|
|
|
+ width: 80.0,
|
|
|
+ height: 80.0,
|
|
|
+ child: SpinKitFadingCircle(
|
|
|
+ color: FlutterFlowTheme.of(
|
|
|
+ context)
|
|
|
+ .primary,
|
|
|
+ size: 80.0,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ final staggeredViewHorecagelegenheidoverzichtResponse =
|
|
|
+ snapshot.data!;
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_statusCode_StaggeredView_ml51d2as'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .statusCode,
|
|
|
+ ParamType.int,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'int',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_responseBody_StaggeredView_ml51d2as'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .bodyText,
|
|
|
+ ParamType.String,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'String',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return Builder(
|
|
|
+ builder: (context) {
|
|
|
+ final horecagelegenheden = functions
|
|
|
+ .filterHorecagelegenheden(
|
|
|
+ _model.alleOvernachten
|
|
|
+ .toList(),
|
|
|
+ _model.textController1
|
|
|
+ .text,
|
|
|
+ _model
|
|
|
+ .categorieFilterActiviteiten,
|
|
|
+ '\$.titel',
|
|
|
+ '\$.categorie')
|
|
|
+ .toList()
|
|
|
+ .take(25)
|
|
|
+ .toList();
|
|
|
+ if (horecagelegenheden
|
|
|
+ .isEmpty) {
|
|
|
+ return Image.asset(
|
|
|
+ 'assets/images/logo800px.png',
|
|
|
+ );
|
|
|
+ }
|
|
|
+ _model.debugGeneratorVariables[
|
|
|
+ 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ horecagelegenheden.take(100),
|
|
|
+ ParamType.JSON,
|
|
|
+ isList: true,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'dynamic',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return MasonryGridView.builder(
|
|
|
+ gridDelegate:
|
|
|
+ SliverSimpleGridDelegateWithFixedCrossAxisCount(
|
|
|
+ crossAxisCount: () {
|
|
|
+ if (MediaQuery.sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointSmall) {
|
|
|
+ return 1;
|
|
|
+ } else if (MediaQuery
|
|
|
+ .sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointMedium) {
|
|
|
+ return 1;
|
|
|
+ } else if (MediaQuery
|
|
|
+ .sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointLarge) {
|
|
|
+ return 2;
|
|
|
+ } else {
|
|
|
+ return 3;
|
|
|
+ }
|
|
|
+ }(),
|
|
|
+ ),
|
|
|
+ crossAxisSpacing: 12.0,
|
|
|
+ mainAxisSpacing: 12.0,
|
|
|
+ itemCount:
|
|
|
+ horecagelegenheden.length,
|
|
|
+ itemBuilder: (context,
|
|
|
+ horecagelegenhedenIndex) {
|
|
|
+ final horecagelegenhedenItem =
|
|
|
+ horecagelegenheden[
|
|
|
+ horecagelegenhedenIndex];
|
|
|
+ return Container(
|
|
|
+ width: 600.0,
|
|
|
+ height: 225.0,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: FlutterFlowTheme
|
|
|
+ .of(context)
|
|
|
+ .secondaryBackground,
|
|
|
+ ),
|
|
|
+ child: InkWell(
|
|
|
+ splashColor:
|
|
|
+ Colors.transparent,
|
|
|
+ focusColor:
|
|
|
+ Colors.transparent,
|
|
|
+ hoverColor:
|
|
|
+ Colors.transparent,
|
|
|
+ highlightColor:
|
|
|
+ Colors.transparent,
|
|
|
+ onTap: () async {
|
|
|
+ context.pushNamed(
|
|
|
+ HorecagelegenheidCurrentWidget
|
|
|
+ .routeName,
|
|
|
+ queryParameters: {
|
|
|
+ 'nid':
|
|
|
+ serializeParam(
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ ParamType
|
|
|
+ .String,
|
|
|
+ ),
|
|
|
+ }.withoutNulls,
|
|
|
+ );
|
|
|
+ },
|
|
|
+ child: Builder(
|
|
|
+ builder: (_) {
|
|
|
+ return DebugFlutterFlowModelContext(
|
|
|
+ rootModel: _model
|
|
|
+ .rootModel,
|
|
|
+ parentModelCallback:
|
|
|
+ (m) {
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels4[
|
|
|
+ 'Key557_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
|
|
|
+ },
|
|
|
+ child:
|
|
|
+ HorecagelegenheidoverzichtKaartWidget(
|
|
|
+ key: Key(
|
|
|
+ 'Key557_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
|
|
|
+ titel:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.titel''',
|
|
|
+ ).toString(),
|
|
|
+ logo:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.logo''',
|
|
|
+ ).toString(),
|
|
|
+ nid: getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ adres:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.adres''',
|
|
|
+ ).toString(),
|
|
|
+ plaats:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.plaats''',
|
|
|
+ ).toString(),
|
|
|
+ categorie:
|
|
|
+ (getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.categorie''',
|
|
|
+ true,
|
|
|
+ ) as List?)
|
|
|
+ ?.map<String>(
|
|
|
+ (e) => e
|
|
|
+ .toString())
|
|
|
+ .toList()
|
|
|
+ .cast<
|
|
|
+ String>(),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ return Container(
|
|
|
+ width: 100.0,
|
|
|
+ height: 100.0,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: FlutterFlowTheme.of(context)
|
|
|
+ .secondaryBackground,
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ Builder(
|
|
|
+ builder: (context) {
|
|
|
+ if (_model.tabUitgaanGeladen) {
|
|
|
+ return Column(
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
+ children: [
|
|
|
+ Expanded(
|
|
|
+ child: FutureBuilder<ApiCallResponse>(
|
|
|
+ future: HorecagelegenheidoverzichtCall
|
|
|
+ .call(
|
|
|
+ horcat: '17967',
|
|
|
+ townid:
|
|
|
+ FFAppState().provincieSelectId,
|
|
|
+ ),
|
|
|
+ builder: (context, snapshot) {
|
|
|
+ // Customize what your widget looks like when it's loading.
|
|
|
+ if (!snapshot.hasData) {
|
|
|
+ return Center(
|
|
|
+ child: SizedBox(
|
|
|
+ width: 80.0,
|
|
|
+ height: 80.0,
|
|
|
+ child: SpinKitFadingCircle(
|
|
|
+ color: FlutterFlowTheme.of(
|
|
|
+ context)
|
|
|
+ .primary,
|
|
|
+ size: 80.0,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ final staggeredViewHorecagelegenheidoverzichtResponse =
|
|
|
+ snapshot.data!;
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_statusCode_StaggeredView_qs6j4ugv'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .statusCode,
|
|
|
+ ParamType.int,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'int',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_responseBody_StaggeredView_qs6j4ugv'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .bodyText,
|
|
|
+ ParamType.String,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'String',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return Builder(
|
|
|
+ builder: (context) {
|
|
|
+ final horecagelegenheden = functions
|
|
|
+ .filterHorecagelegenheden(
|
|
|
+ _model.alleUitgaan
|
|
|
+ .toList(),
|
|
|
+ _model.textController1
|
|
|
+ .text,
|
|
|
+ _model
|
|
|
+ .categorieFilterActiviteiten,
|
|
|
+ '\$.titel',
|
|
|
+ '\$.categorie')
|
|
|
+ .toList()
|
|
|
+ .take(25)
|
|
|
+ .toList();
|
|
|
+ if (horecagelegenheden
|
|
|
+ .isEmpty) {
|
|
|
+ return Image.asset(
|
|
|
+ 'assets/images/logo800px.png',
|
|
|
+ );
|
|
|
+ }
|
|
|
+ _model.debugGeneratorVariables[
|
|
|
+ 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ horecagelegenheden.take(100),
|
|
|
+ ParamType.JSON,
|
|
|
+ isList: true,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'dynamic',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return MasonryGridView.builder(
|
|
|
+ gridDelegate:
|
|
|
+ SliverSimpleGridDelegateWithFixedCrossAxisCount(
|
|
|
+ crossAxisCount: () {
|
|
|
+ if (MediaQuery.sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointSmall) {
|
|
|
+ return 1;
|
|
|
+ } else if (MediaQuery
|
|
|
+ .sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointMedium) {
|
|
|
+ return 1;
|
|
|
+ } else if (MediaQuery
|
|
|
+ .sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointLarge) {
|
|
|
+ return 2;
|
|
|
+ } else {
|
|
|
+ return 3;
|
|
|
+ }
|
|
|
+ }(),
|
|
|
+ ),
|
|
|
+ crossAxisSpacing: 12.0,
|
|
|
+ mainAxisSpacing: 12.0,
|
|
|
+ itemCount:
|
|
|
+ horecagelegenheden.length,
|
|
|
+ itemBuilder: (context,
|
|
|
+ horecagelegenhedenIndex) {
|
|
|
+ final horecagelegenhedenItem =
|
|
|
+ horecagelegenheden[
|
|
|
+ horecagelegenhedenIndex];
|
|
|
+ return Container(
|
|
|
+ width: 600.0,
|
|
|
+ height: 225.0,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: FlutterFlowTheme
|
|
|
+ .of(context)
|
|
|
+ .secondaryBackground,
|
|
|
+ ),
|
|
|
+ child: InkWell(
|
|
|
+ splashColor:
|
|
|
+ Colors.transparent,
|
|
|
+ focusColor:
|
|
|
+ Colors.transparent,
|
|
|
+ hoverColor:
|
|
|
+ Colors.transparent,
|
|
|
+ highlightColor:
|
|
|
+ Colors.transparent,
|
|
|
+ onTap: () async {
|
|
|
+ context.pushNamed(
|
|
|
+ HorecagelegenheidCurrentWidget
|
|
|
+ .routeName,
|
|
|
+ queryParameters: {
|
|
|
+ 'nid':
|
|
|
+ serializeParam(
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ ParamType
|
|
|
+ .String,
|
|
|
+ ),
|
|
|
+ }.withoutNulls,
|
|
|
+ );
|
|
|
+ },
|
|
|
+ child: Builder(
|
|
|
+ builder: (_) {
|
|
|
+ return DebugFlutterFlowModelContext(
|
|
|
+ rootModel: _model
|
|
|
+ .rootModel,
|
|
|
+ parentModelCallback:
|
|
|
+ (m) {
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels5[
|
|
|
+ 'Keybyn_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
|
|
|
+ },
|
|
|
+ child:
|
|
|
+ HorecagelegenheidoverzichtKaartWidget(
|
|
|
+ key: Key(
|
|
|
+ 'Keybyn_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
|
|
|
+ titel:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.titel''',
|
|
|
+ ).toString(),
|
|
|
+ logo:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.logo''',
|
|
|
+ ).toString(),
|
|
|
+ nid: getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ adres:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.adres''',
|
|
|
+ ).toString(),
|
|
|
+ plaats:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.plaats''',
|
|
|
+ ).toString(),
|
|
|
+ categorie:
|
|
|
+ (getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.categorie''',
|
|
|
+ true,
|
|
|
+ ) as List?)
|
|
|
+ ?.map<String>(
|
|
|
+ (e) => e
|
|
|
+ .toString())
|
|
|
+ .toList()
|
|
|
+ .cast<
|
|
|
+ String>(),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ return Container(
|
|
|
+ width: 100.0,
|
|
|
+ height: 100.0,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: FlutterFlowTheme.of(context)
|
|
|
+ .secondaryBackground,
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ Builder(
|
|
|
+ builder: (context) {
|
|
|
+ if (_model.tabVerhuurcateringGeladen) {
|
|
|
+ return Column(
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
+ children: [
|
|
|
+ Expanded(
|
|
|
+ child: FutureBuilder<ApiCallResponse>(
|
|
|
+ future: HorecagelegenheidoverzichtCall
|
|
|
+ .call(
|
|
|
+ horcat: '17968',
|
|
|
+ townid: widget!.plaats,
|
|
|
+ ),
|
|
|
+ builder: (context, snapshot) {
|
|
|
+ // Customize what your widget looks like when it's loading.
|
|
|
+ if (!snapshot.hasData) {
|
|
|
+ return Center(
|
|
|
+ child: SizedBox(
|
|
|
+ width: 80.0,
|
|
|
+ height: 80.0,
|
|
|
+ child: SpinKitFadingCircle(
|
|
|
+ color: FlutterFlowTheme.of(
|
|
|
+ context)
|
|
|
+ .primary,
|
|
|
+ size: 80.0,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ final staggeredViewHorecagelegenheidoverzichtResponse =
|
|
|
+ snapshot.data!;
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_statusCode_StaggeredView_m1b5wn2t'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .statusCode,
|
|
|
+ ParamType.int,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'int',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ _model.debugBackendQueries[
|
|
|
+ 'HorecagelegenheidoverzichtCall_responseBody_StaggeredView_m1b5wn2t'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .bodyText,
|
|
|
+ ParamType.String,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'String',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return Builder(
|
|
|
+ builder: (context) {
|
|
|
+ final horecagelegenheden =
|
|
|
+ getJsonField(
|
|
|
+ staggeredViewHorecagelegenheidoverzichtResponse
|
|
|
+ .jsonBody,
|
|
|
+ r'''$''',
|
|
|
+ ).toList().take(25).toList();
|
|
|
+ if (horecagelegenheden
|
|
|
+ .isEmpty) {
|
|
|
+ return Image.asset(
|
|
|
+ 'assets/images/logo800px.png',
|
|
|
+ );
|
|
|
+ }
|
|
|
+ _model.debugGeneratorVariables[
|
|
|
+ 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
|
|
|
+ debugSerializeParam(
|
|
|
+ horecagelegenheden.take(100),
|
|
|
+ ParamType.JSON,
|
|
|
+ isList: true,
|
|
|
+ link:
|
|
|
+ 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzichtCopy3',
|
|
|
+ name: 'dynamic',
|
|
|
+ nullable: false,
|
|
|
+ );
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
+
|
|
|
+ return MasonryGridView.builder(
|
|
|
+ gridDelegate:
|
|
|
+ SliverSimpleGridDelegateWithFixedCrossAxisCount(
|
|
|
+ crossAxisCount: () {
|
|
|
+ if (MediaQuery.sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointSmall) {
|
|
|
+ return 1;
|
|
|
+ } else if (MediaQuery
|
|
|
+ .sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointMedium) {
|
|
|
+ return 1;
|
|
|
+ } else if (MediaQuery
|
|
|
+ .sizeOf(
|
|
|
+ context)
|
|
|
+ .width <
|
|
|
+ kBreakpointLarge) {
|
|
|
+ return 2;
|
|
|
+ } else {
|
|
|
+ return 3;
|
|
|
+ }
|
|
|
+ }(),
|
|
|
+ ),
|
|
|
+ crossAxisSpacing: 12.0,
|
|
|
+ mainAxisSpacing: 12.0,
|
|
|
+ itemCount:
|
|
|
+ horecagelegenheden.length,
|
|
|
+ itemBuilder: (context,
|
|
|
+ horecagelegenhedenIndex) {
|
|
|
+ final horecagelegenhedenItem =
|
|
|
+ horecagelegenheden[
|
|
|
+ horecagelegenhedenIndex];
|
|
|
+ return Container(
|
|
|
+ width: 600.0,
|
|
|
+ height: 225.0,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: FlutterFlowTheme
|
|
|
+ .of(context)
|
|
|
+ .secondaryBackground,
|
|
|
+ ),
|
|
|
+ child: InkWell(
|
|
|
+ splashColor:
|
|
|
+ Colors.transparent,
|
|
|
+ focusColor:
|
|
|
+ Colors.transparent,
|
|
|
+ hoverColor:
|
|
|
+ Colors.transparent,
|
|
|
+ highlightColor:
|
|
|
+ Colors.transparent,
|
|
|
+ onTap: () async {
|
|
|
+ context.pushNamed(
|
|
|
+ HorecagelegenheidCurrentWidget
|
|
|
+ .routeName,
|
|
|
+ queryParameters: {
|
|
|
+ 'nid':
|
|
|
+ serializeParam(
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ ParamType
|
|
|
+ .String,
|
|
|
+ ),
|
|
|
+ }.withoutNulls,
|
|
|
+ );
|
|
|
+ },
|
|
|
+ child: Builder(
|
|
|
+ builder: (_) {
|
|
|
+ return DebugFlutterFlowModelContext(
|
|
|
+ rootModel: _model
|
|
|
+ .rootModel,
|
|
|
+ parentModelCallback:
|
|
|
+ (m) {
|
|
|
+ _model.horecagelegenheidoverzichtKaartModels6[
|
|
|
+ 'Keyb6q_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
|
|
|
+ },
|
|
|
+ child:
|
|
|
+ HorecagelegenheidoverzichtKaartWidget(
|
|
|
+ key: Key(
|
|
|
+ 'Keyb6q_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
|
|
|
+ titel:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.titel''',
|
|
|
+ ).toString(),
|
|
|
+ logo:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.logo''',
|
|
|
+ ).toString(),
|
|
|
+ nid: getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.nid''',
|
|
|
+ ).toString(),
|
|
|
+ adres:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.adres''',
|
|
|
+ ).toString(),
|
|
|
+ plaats:
|
|
|
+ getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.plaats''',
|
|
|
+ ).toString(),
|
|
|
+ categorie:
|
|
|
+ (getJsonField(
|
|
|
+ horecagelegenhedenItem,
|
|
|
+ r'''$.categorie''',
|
|
|
+ true,
|
|
|
+ ) as List?)
|
|
|
+ ?.map<String>(
|
|
|
+ (e) => e
|
|
|
+ .toString())
|
|
|
+ .toList()
|
|
|
+ .cast<
|
|
|
+ String>(),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ return Container(
|
|
|
+ width: 100.0,
|
|
|
+ height: 100.0,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: FlutterFlowTheme.of(context)
|
|
|
+ .secondaryBackground,
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|