import '/backend/api_requests/api_calls.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; import '/flutter_flow/flutter_flow_widgets.dart'; import '/shared/lege_lijst_component/lege_lijst_component_widget.dart'; import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; import 'fotoboek_grid_component_copy_model.dart'; export 'fotoboek_grid_component_copy_model.dart'; class FotoboekGridComponentCopyWidget extends StatefulWidget { const FotoboekGridComponentCopyWidget({ super.key, this.parameter1, this.parameter2, this.parameter3, this.parameter4, required this.bijKeuze, }); final dynamic parameter1; final dynamic parameter2; final dynamic parameter3; final List? parameter4; final Future Function(String fid, String url)? bijKeuze; @override State createState() => _FotoboekGridComponentCopyWidgetState(); } class _FotoboekGridComponentCopyWidgetState extends State with RouteAware { late FotoboekGridComponentCopyModel _model; @override void setState(VoidCallback callback) { super.setState(callback); _model.onUpdate(); } @override void initState() { super.initState(); _model = createModel(context, () => FotoboekGridComponentCopyModel()); } @override void dispose() { routeObserver.unsubscribe(this); _model.maybeDispose(); super.dispose(); } @override void didUpdateWidget(FotoboekGridComponentCopyWidget oldWidget) { super.didUpdateWidget(oldWidget); _model.widget = widget; } @override void didChangeDependencies() { super.didChangeDependencies(); final route = DebugModalRoute.of(context); if (route != null) { routeObserver.subscribe(this, route); } debugLogGlobalProperty(context); } @override void didPopNext() { if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) { setState(() => _model.isRouteVisible = true); debugLogWidgetClass(_model); } } @override void didPush() { if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) { setState(() => _model.isRouteVisible = true); debugLogWidgetClass(_model); } } @override void didPop() { _model.isRouteVisible = false; } @override void didPushNext() { _model.isRouteVisible = false; } @override Widget build(BuildContext context) { DebugFlutterFlowModelContext.maybeOf(context) ?.parentModelCallback ?.call(_model); context.watch(); return FutureBuilder( future: MijnFotosCall.call( sessionName: FFAppState().userSessionname, sessid: FFAppState().userSessionid, ), builder: (context, snapshot) { // Customize what your widget looks like when it's loading. if (!snapshot.hasData) { return Center( child: SizedBox( width: 80.0, height: 80.0, child: SpinKitFadingCircle( color: FlutterFlowTheme.of(context).primary, size: 80.0, ), ), ); } final gridViewMijnFotosResponse = snapshot.data!; _model.debugBackendQueries[ 'MijnFotosCall_statusCode_GridView_ilbfk6hl'] = debugSerializeParam( gridViewMijnFotosResponse.statusCode, ParamType.int, link: 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=FotoboekGridComponentCopy', name: 'int', nullable: false, ); _model.debugBackendQueries[ 'MijnFotosCall_responseBody_GridView_ilbfk6hl'] = debugSerializeParam( gridViewMijnFotosResponse.bodyText, ParamType.String, link: 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=FotoboekGridComponentCopy', name: 'String', nullable: false, ); debugLogWidgetClass(_model); return Builder( builder: (context) { final fotoboekItem = MijnFotosCall.items( gridViewMijnFotosResponse.jsonBody, )?.toList() ?? []; if (fotoboekItem.isEmpty) { return Center( child: LegeLijstComponentWidget( tekst: 'Je hebt nog geen foto\'s. Upload er een met Logo kiezen.', ), ); } _model.debugGeneratorVariables[ 'fotoboekItem${fotoboekItem.length > 100 ? ' (first 100)' : ''}'] = debugSerializeParam( fotoboekItem.take(100), ParamType.JSON, isList: true, link: 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=FotoboekGridComponentCopy', name: 'dynamic', nullable: false, ); debugLogWidgetClass(_model); return GridView.builder( padding: EdgeInsets.zero, gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3, crossAxisSpacing: 10.0, mainAxisSpacing: 10.0, childAspectRatio: 1.0, ), shrinkWrap: true, scrollDirection: Axis.vertical, itemCount: fotoboekItem.length, itemBuilder: (context, fotoboekItemIndex) { final fotoboekItemItem = fotoboekItem[fotoboekItemIndex]; return InkWell( splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, onTap: () async { safeSetState(() {}); }, child: ClipRRect( borderRadius: BorderRadius.circular(8.0), child: Image.network( getJsonField( fotoboekItemItem, r'''$.thumb''', ).toString(), width: double.infinity, height: double.infinity, fit: BoxFit.cover, ), ), ); }, ); }, ); }, ); } }