z_zuitgaantabel_componentsmall_model.dart 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. import '/backend/api_requests/api_calls.dart';
  2. import '/components/kaart_tabel_uitgaan_s_comp_widget.dart';
  3. import '/flutter_flow/flutter_flow_theme.dart';
  4. import '/flutter_flow/flutter_flow_util.dart';
  5. import '/flutter_flow/flutter_flow_widgets.dart';
  6. import '/shared/geen_evenementen_component/geen_evenementen_component_widget.dart';
  7. import '/index.dart';
  8. import 'dart:async';
  9. import 'z_zuitgaantabel_componentsmall_widget.dart'
  10. show ZZuitgaantabelComponentsmallWidget;
  11. import 'package:flutter/material.dart';
  12. import 'package:flutter_spinkit/flutter_spinkit.dart';
  13. import 'package:google_fonts/google_fonts.dart';
  14. import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart';
  15. import 'package:provider/provider.dart';
  16. class ZZuitgaantabelComponentsmallModel
  17. extends FlutterFlowModel<ZZuitgaantabelComponentsmallWidget> {
  18. /// State fields for stateful widgets in this component.
  19. // State field(s) for ListView widget.
  20. PagingController<ApiPagingParams, dynamic>? listViewPagingController;
  21. Function(ApiPagingParams nextPageMarker)? listViewApiCall;
  22. // Models for kaartTabelUitgaanSComp dynamic component.
  23. Map<String, FlutterFlowModel> kaartTabelUitgaanSCompModels = {};
  24. final Map<String, DebugDataField> debugGeneratorVariables = {};
  25. final Map<String, DebugDataField> debugBackendQueries = {};
  26. final Map<String, FlutterFlowModel> widgetBuilderComponents = {};
  27. @override
  28. void initState(BuildContext context) {}
  29. @override
  30. void dispose() {
  31. listViewPagingController?.dispose();
  32. }
  33. /// Additional helper methods.
  34. PagingController<ApiPagingParams, dynamic> setListViewController(
  35. Function(ApiPagingParams) apiCall,
  36. ) {
  37. listViewApiCall = apiCall;
  38. return listViewPagingController ??= _createListViewController(apiCall);
  39. }
  40. PagingController<ApiPagingParams, dynamic> _createListViewController(
  41. Function(ApiPagingParams) query,
  42. ) {
  43. final controller = PagingController<ApiPagingParams, dynamic>(
  44. firstPageKey: ApiPagingParams(
  45. nextPageNumber: 0,
  46. numItems: 0,
  47. lastResponse: null,
  48. ),
  49. );
  50. return controller..addPageRequestListener(listViewUitgaanstabelPage);
  51. }
  52. void listViewUitgaanstabelPage(ApiPagingParams nextPageMarker) =>
  53. listViewApiCall!(nextPageMarker).then((listViewUitgaanstabelResponse) {
  54. final pageItems = (getJsonField(
  55. listViewUitgaanstabelResponse.jsonBody,
  56. r'''$''',
  57. ) ??
  58. [])
  59. .toList() as List;
  60. final newNumItems = nextPageMarker.numItems + pageItems.length;
  61. listViewPagingController?.appendPage(
  62. pageItems,
  63. (pageItems.length > 0)
  64. ? ApiPagingParams(
  65. nextPageNumber: nextPageMarker.nextPageNumber + 1,
  66. numItems: newNumItems,
  67. lastResponse: listViewUitgaanstabelResponse,
  68. )
  69. : null,
  70. );
  71. });
  72. Future waitForOnePageForListView({
  73. double minWait = 0,
  74. double maxWait = double.infinity,
  75. }) async {
  76. final stopwatch = Stopwatch()..start();
  77. while (true) {
  78. await Future.delayed(Duration(milliseconds: 50));
  79. final timeElapsed = stopwatch.elapsedMilliseconds;
  80. final requestComplete =
  81. (listViewPagingController?.nextPageKey?.nextPageNumber ?? 0) > 0;
  82. if (timeElapsed > maxWait || (requestComplete && timeElapsed > minWait)) {
  83. break;
  84. }
  85. }
  86. }
  87. @override
  88. WidgetClassDebugData toWidgetClassDebugData() => WidgetClassDebugData(
  89. widgetParameters: {
  90. 'townid': debugSerializeParam(
  91. widget?.townid,
  92. ParamType.String,
  93. link:
  94. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=ZZuitgaantabelComponentsmall',
  95. searchReference:
  96. 'reference=ShgKEAoGdG93bmlkEgZqM2hvMDVyBAgDIABQAFoGdG93bmlk',
  97. name: 'String',
  98. nullable: true,
  99. ),
  100. 'displayid': debugSerializeParam(
  101. widget?.displayid,
  102. ParamType.String,
  103. link:
  104. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=ZZuitgaantabelComponentsmall',
  105. searchReference:
  106. 'reference=ShsKEwoJZGlzcGxheWlkEgZiaTFxYTlyBAgDIABQAFoJZGlzcGxheWlk',
  107. name: 'String',
  108. nullable: true,
  109. )
  110. }.withoutNulls.entries,
  111. generatorVariables: debugGeneratorVariables.entries,
  112. backendQueries: debugBackendQueries.entries,
  113. componentStates: {
  114. ...widgetBuilderComponents.map(
  115. (key, value) => MapEntry(
  116. key,
  117. value.toWidgetClassDebugData(),
  118. ),
  119. ),
  120. }.withoutNulls.entries,
  121. dynamicComponentStates: {
  122. 'kaartTabelUitgaanSCompModels (List<kaartTabelUitgaanSComp>)':
  123. DynamicWidgetClassDebugData(
  124. componentStates: Map.fromIterables(
  125. List.generate(
  126. kaartTabelUitgaanSCompModels.length, (index) => '[$index]'),
  127. kaartTabelUitgaanSCompModels.values
  128. .map((e) => e.toWidgetClassDebugData()),
  129. ).entries,
  130. ),
  131. }.withoutNulls.entries,
  132. link:
  133. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd/tab=uiBuilder&page=ZZuitgaantabelComponentsmall',
  134. searchReference:
  135. 'reference=OhxaWnVpdGdhYW50YWJlbENvbXBvbmVudHNtYWxsUABaHFpadWl0Z2FhbnRhYmVsQ29tcG9uZW50c21hbGw=',
  136. widgetClassName: 'ZZuitgaantabelComponentsmall',
  137. );
  138. }