uitgaan_tabel_component_model.dart 5.4 KB

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