| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- 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 'dart:async';
- import 'thuis_bezorgen_widget.dart' show ThuisBezorgenWidget;
- import 'package:flutter/material.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:infinite_scroll_pagination/infinite_scroll_pagination.dart';
- import 'package:provider/provider.dart';
- class ThuisBezorgenModel extends FlutterFlowModel<ThuisBezorgenWidget> {
- /// State fields for stateful widgets in this page.
- // State field(s) for StaggeredView widget.
- PagingController<ApiPagingParams, dynamic>? staggeredViewPagingController;
- Function(ApiPagingParams nextPageMarker)? staggeredViewApiCall;
- // Models for HorecagelegenheidoverzichtKaart dynamic component.
- Map<String, FlutterFlowModel> horecagelegenheidoverzichtKaartModels = {};
- // Model for HeaderButtonsComponent component.
- late HeaderButtonsComponentModel headerButtonsComponentModel;
- // Model for drawerComponent component.
- late DrawerComponentModel drawerComponentModel;
- final Map<String, DebugDataField> debugGeneratorVariables = {};
- final Map<String, DebugDataField> debugBackendQueries = {};
- final Map<String, FlutterFlowModel> widgetBuilderComponents = {};
- @override
- void initState(BuildContext context) {
- headerButtonsComponentModel =
- createModel(context, () => HeaderButtonsComponentModel());
- drawerComponentModel = createModel(context, () => DrawerComponentModel());
- debugLogWidgetClass(this);
- }
- @override
- void dispose() {
- staggeredViewPagingController?.dispose();
- headerButtonsComponentModel.dispose();
- drawerComponentModel.dispose();
- }
- /// Additional helper methods.
- PagingController<ApiPagingParams, dynamic> setStaggeredViewController(
- Function(ApiPagingParams) apiCall,
- ) {
- staggeredViewApiCall = apiCall;
- return staggeredViewPagingController ??=
- _createStaggeredViewController(apiCall);
- }
- PagingController<ApiPagingParams, dynamic> _createStaggeredViewController(
- Function(ApiPagingParams) query,
- ) {
- final controller = PagingController<ApiPagingParams, dynamic>(
- firstPageKey: ApiPagingParams(
- nextPageNumber: 0,
- numItems: 0,
- lastResponse: null,
- ),
- );
- return controller
- ..addPageRequestListener(staggeredViewHorecagelegenheidoverzichtPage);
- }
- void staggeredViewHorecagelegenheidoverzichtPage(
- ApiPagingParams nextPageMarker) =>
- staggeredViewApiCall!(nextPageMarker)
- .then((staggeredViewHorecagelegenheidoverzichtResponse) {
- final pageItems = (getJsonField(
- staggeredViewHorecagelegenheidoverzichtResponse.jsonBody,
- r'''$''',
- ) ??
- [])
- .toList() as List;
- final newNumItems = nextPageMarker.numItems + pageItems.length;
- staggeredViewPagingController?.appendPage(
- pageItems,
- (pageItems.length > 0)
- ? ApiPagingParams(
- nextPageNumber: nextPageMarker.nextPageNumber + 1,
- numItems: newNumItems,
- lastResponse: staggeredViewHorecagelegenheidoverzichtResponse,
- )
- : null,
- );
- });
- Future waitForOnePageForStaggeredView({
- double minWait = 0,
- double maxWait = double.infinity,
- }) async {
- final stopwatch = Stopwatch()..start();
- while (true) {
- await Future.delayed(Duration(milliseconds: 50));
- final timeElapsed = stopwatch.elapsedMilliseconds;
- final requestComplete =
- (staggeredViewPagingController?.nextPageKey?.nextPageNumber ?? 0) > 0;
- if (timeElapsed > maxWait || (requestComplete && timeElapsed > minWait)) {
- break;
- }
- }
- }
- @override
- WidgetClassDebugData toWidgetClassDebugData() => WidgetClassDebugData(
- widgetParameters: {
- 'plaats': debugSerializeParam(
- widget?.plaats,
- ParamType.String,
- link:
- 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=thuisBezorgen',
- searchReference:
- 'reference=ShgKEAoGcGxhYXRzEgY2d2xkOXdyBAgDIAFQAVoGcGxhYXRz',
- name: 'String',
- nullable: true,
- )
- }.withoutNulls.entries,
- generatorVariables: debugGeneratorVariables.entries,
- backendQueries: debugBackendQueries.entries,
- componentStates: {
- 'headerButtonsComponentModel (HeaderButtonsComponent)':
- headerButtonsComponentModel?.toWidgetClassDebugData(),
- 'drawerComponentModel (drawerComponent)':
- drawerComponentModel?.toWidgetClassDebugData(),
- ...widgetBuilderComponents.map(
- (key, value) => MapEntry(
- key,
- value.toWidgetClassDebugData(),
- ),
- ),
- }.withoutNulls.entries,
- dynamicComponentStates: {
- 'horecagelegenheidoverzichtKaartModels (List<HorecagelegenheidoverzichtKaart>)':
- DynamicWidgetClassDebugData(
- componentStates: Map.fromIterables(
- List.generate(horecagelegenheidoverzichtKaartModels.length,
- (index) => '[$index]'),
- horecagelegenheidoverzichtKaartModels.values
- .map((e) => e.toWidgetClassDebugData()),
- ).entries,
- ),
- }.withoutNulls.entries,
- link:
- 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd/tab=uiBuilder&page=thuisBezorgen',
- searchReference:
- 'reference=Og10aHVpc0Jlem9yZ2VuUAFaDXRodWlzQmV6b3JnZW4=',
- widgetClassName: 'thuisBezorgen',
- );
- }
|