fotoboek_grid_component_copy_widget.dart 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  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/lege_lijst_component/lege_lijst_component_widget.dart';
  6. import 'dart:ui';
  7. import 'package:flutter/material.dart';
  8. import 'package:flutter_spinkit/flutter_spinkit.dart';
  9. import 'package:google_fonts/google_fonts.dart';
  10. import 'package:provider/provider.dart';
  11. import 'fotoboek_grid_component_copy_model.dart';
  12. export 'fotoboek_grid_component_copy_model.dart';
  13. class FotoboekGridComponentCopyWidget extends StatefulWidget {
  14. const FotoboekGridComponentCopyWidget({
  15. super.key,
  16. this.parameter1,
  17. this.parameter2,
  18. this.parameter3,
  19. this.parameter4,
  20. required this.bijKeuze,
  21. });
  22. final dynamic parameter1;
  23. final dynamic parameter2;
  24. final dynamic parameter3;
  25. final List<dynamic>? parameter4;
  26. final Future Function(String fid, String url)? bijKeuze;
  27. @override
  28. State<FotoboekGridComponentCopyWidget> createState() =>
  29. _FotoboekGridComponentCopyWidgetState();
  30. }
  31. class _FotoboekGridComponentCopyWidgetState
  32. extends State<FotoboekGridComponentCopyWidget> with RouteAware {
  33. late FotoboekGridComponentCopyModel _model;
  34. @override
  35. void setState(VoidCallback callback) {
  36. super.setState(callback);
  37. _model.onUpdate();
  38. }
  39. @override
  40. void initState() {
  41. super.initState();
  42. _model = createModel(context, () => FotoboekGridComponentCopyModel());
  43. }
  44. @override
  45. void dispose() {
  46. routeObserver.unsubscribe(this);
  47. _model.maybeDispose();
  48. super.dispose();
  49. }
  50. @override
  51. void didUpdateWidget(FotoboekGridComponentCopyWidget oldWidget) {
  52. super.didUpdateWidget(oldWidget);
  53. _model.widget = widget;
  54. }
  55. @override
  56. void didChangeDependencies() {
  57. super.didChangeDependencies();
  58. final route = DebugModalRoute.of(context);
  59. if (route != null) {
  60. routeObserver.subscribe(this, route);
  61. }
  62. debugLogGlobalProperty(context);
  63. }
  64. @override
  65. void didPopNext() {
  66. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  67. setState(() => _model.isRouteVisible = true);
  68. debugLogWidgetClass(_model);
  69. }
  70. }
  71. @override
  72. void didPush() {
  73. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  74. setState(() => _model.isRouteVisible = true);
  75. debugLogWidgetClass(_model);
  76. }
  77. }
  78. @override
  79. void didPop() {
  80. _model.isRouteVisible = false;
  81. }
  82. @override
  83. void didPushNext() {
  84. _model.isRouteVisible = false;
  85. }
  86. @override
  87. Widget build(BuildContext context) {
  88. DebugFlutterFlowModelContext.maybeOf(context)
  89. ?.parentModelCallback
  90. ?.call(_model);
  91. context.watch<FFAppState>();
  92. return FutureBuilder<ApiCallResponse>(
  93. future: MijnFotosCall.call(
  94. sessionName: FFAppState().userSessionname,
  95. sessid: FFAppState().userSessionid,
  96. ),
  97. builder: (context, snapshot) {
  98. // Customize what your widget looks like when it's loading.
  99. if (!snapshot.hasData) {
  100. return Center(
  101. child: SizedBox(
  102. width: 80.0,
  103. height: 80.0,
  104. child: SpinKitFadingCircle(
  105. color: FlutterFlowTheme.of(context).primary,
  106. size: 80.0,
  107. ),
  108. ),
  109. );
  110. }
  111. final gridViewMijnFotosResponse = snapshot.data!;
  112. _model.debugBackendQueries[
  113. 'MijnFotosCall_statusCode_GridView_ilbfk6hl'] = debugSerializeParam(
  114. gridViewMijnFotosResponse.statusCode,
  115. ParamType.int,
  116. link:
  117. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=FotoboekGridComponentCopy',
  118. name: 'int',
  119. nullable: false,
  120. );
  121. _model.debugBackendQueries[
  122. 'MijnFotosCall_responseBody_GridView_ilbfk6hl'] =
  123. debugSerializeParam(
  124. gridViewMijnFotosResponse.bodyText,
  125. ParamType.String,
  126. link:
  127. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=FotoboekGridComponentCopy',
  128. name: 'String',
  129. nullable: false,
  130. );
  131. debugLogWidgetClass(_model);
  132. return Builder(
  133. builder: (context) {
  134. final fotoboekItem = MijnFotosCall.items(
  135. gridViewMijnFotosResponse.jsonBody,
  136. )?.toList() ??
  137. [];
  138. if (fotoboekItem.isEmpty) {
  139. return Center(
  140. child: LegeLijstComponentWidget(
  141. tekst:
  142. 'Je hebt nog geen foto\'s. Upload er een met Logo kiezen.',
  143. ),
  144. );
  145. }
  146. _model.debugGeneratorVariables[
  147. 'fotoboekItem${fotoboekItem.length > 100 ? ' (first 100)' : ''}'] =
  148. debugSerializeParam(
  149. fotoboekItem.take(100),
  150. ParamType.JSON,
  151. isList: true,
  152. link:
  153. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=FotoboekGridComponentCopy',
  154. name: 'dynamic',
  155. nullable: false,
  156. );
  157. debugLogWidgetClass(_model);
  158. return GridView.builder(
  159. padding: EdgeInsets.zero,
  160. gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
  161. crossAxisCount: 3,
  162. crossAxisSpacing: 10.0,
  163. mainAxisSpacing: 10.0,
  164. childAspectRatio: 1.0,
  165. ),
  166. shrinkWrap: true,
  167. scrollDirection: Axis.vertical,
  168. itemCount: fotoboekItem.length,
  169. itemBuilder: (context, fotoboekItemIndex) {
  170. final fotoboekItemItem = fotoboekItem[fotoboekItemIndex];
  171. return ClipRRect(
  172. borderRadius: BorderRadius.circular(8.0),
  173. child: Image.network(
  174. getJsonField(
  175. fotoboekItemItem,
  176. r'''$.thumb''',
  177. ).toString(),
  178. width: double.infinity,
  179. height: double.infinity,
  180. fit: BoxFit.cover,
  181. ),
  182. );
  183. },
  184. );
  185. },
  186. );
  187. },
  188. );
  189. }
  190. }