import '/backend/api_requests/api_calls.dart'; import '/components/kaart_tabel_uitgaan_comp_widget.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; import '/flutter_flow/flutter_flow_widgets.dart'; import '/shared/geen_evenementen_component/geen_evenementen_component_widget.dart'; import '/index.dart'; import 'dart:async'; import 'z_zuitgaantabel_component_widget.dart' show ZZuitgaantabelComponentWidget; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart'; import 'package:provider/provider.dart'; class ZZuitgaantabelComponentModel extends FlutterFlowModel { /// State fields for stateful widgets in this component. // State field(s) for ListView widget. PagingController? listViewPagingController; Function(ApiPagingParams nextPageMarker)? listViewApiCall; // Models for kaartTabelUitgaanComp dynamic component. Map kaartTabelUitgaanCompModels = {}; final Map debugGeneratorVariables = {}; final Map debugBackendQueries = {}; final Map widgetBuilderComponents = {}; @override void initState(BuildContext context) {} @override void dispose() { listViewPagingController?.dispose(); } /// Additional helper methods. PagingController setListViewController( Function(ApiPagingParams) apiCall, ) { listViewApiCall = apiCall; return listViewPagingController ??= _createListViewController(apiCall); } PagingController _createListViewController( Function(ApiPagingParams) query, ) { final controller = PagingController( firstPageKey: ApiPagingParams( nextPageNumber: 0, numItems: 0, lastResponse: null, ), ); return controller..addPageRequestListener(listViewUitgaanstabelPage); } void listViewUitgaanstabelPage(ApiPagingParams nextPageMarker) => listViewApiCall!(nextPageMarker).then((listViewUitgaanstabelResponse) { final pageItems = (getJsonField( listViewUitgaanstabelResponse.jsonBody, r'''$''', ) ?? []) .toList() as List; final newNumItems = nextPageMarker.numItems + pageItems.length; listViewPagingController?.appendPage( pageItems, (pageItems.length > 0) ? ApiPagingParams( nextPageNumber: nextPageMarker.nextPageNumber + 1, numItems: newNumItems, lastResponse: listViewUitgaanstabelResponse, ) : null, ); }); Future waitForOnePageForListView({ 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 = (listViewPagingController?.nextPageKey?.nextPageNumber ?? 0) > 0; if (timeElapsed > maxWait || (requestComplete && timeElapsed > minWait)) { break; } } } @override WidgetClassDebugData toWidgetClassDebugData() => WidgetClassDebugData( widgetParameters: { 'townid': debugSerializeParam( widget?.townid, ParamType.String, link: 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=ZZuitgaantabelComponent', searchReference: 'reference=ShgKEAoGdG93bmlkEgZqM2hvMDVyBAgDIABQAFoGdG93bmlk', name: 'String', nullable: true, ), 'displayid': debugSerializeParam( widget?.displayid, ParamType.String, link: 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=ZZuitgaantabelComponent', searchReference: 'reference=ShsKEwoJZGlzcGxheWlkEgZiaTFxYTlyBAgDIABQAFoJZGlzcGxheWlk', name: 'String', nullable: true, ) }.withoutNulls.entries, generatorVariables: debugGeneratorVariables.entries, backendQueries: debugBackendQueries.entries, componentStates: { ...widgetBuilderComponents.map( (key, value) => MapEntry( key, value.toWidgetClassDebugData(), ), ), }.withoutNulls.entries, dynamicComponentStates: { 'kaartTabelUitgaanCompModels (List)': DynamicWidgetClassDebugData( componentStates: Map.fromIterables( List.generate( kaartTabelUitgaanCompModels.length, (index) => '[$index]'), kaartTabelUitgaanCompModels.values .map((e) => e.toWidgetClassDebugData()), ).entries, ), }.withoutNulls.entries, link: 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd/tab=uiBuilder&page=ZZuitgaantabelComponent', searchReference: 'reference=OhdaWnVpdGdhYW50YWJlbENvbXBvbmVudFAAWhdaWnVpdGdhYW50YWJlbENvbXBvbmVudA==', widgetClassName: 'ZZuitgaantabelComponent', ); }