uitgaantabel_kaart_component_model.dart 5.5 KB

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