import '/components/header_buttons_component_widget.dart'; import '/flutter_flow/flutter_flow_choice_chips.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; import '/flutter_flow/flutter_flow_widgets.dart'; import '/flutter_flow/form_field_controller.dart'; import '/shared/drawer_component/drawer_component_widget.dart'; import '/uitgaanspaginas/home_uitgaan_slider_component/home_uitgaan_slider_component_widget.dart'; import '/uitgaanspaginas/home_uitgaantabel_kaart_component/home_uitgaantabel_kaart_component_widget.dart'; import 'dart:ui'; import '/custom_code/actions/index.dart' as actions; import '/flutter_flow/custom_functions.dart' as functions; import 'package:easy_debounce/easy_debounce.dart'; 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 'home_copy2_model.dart'; export 'home_copy2_model.dart'; class HomeCopy2Widget extends StatefulWidget { const HomeCopy2Widget({super.key}); static String routeName = 'homeCopy2'; static String routePath = '/homeCopy2'; @override State createState() => _HomeCopy2WidgetState(); } class _HomeCopy2WidgetState extends State with TickerProviderStateMixin, RouteAware { late HomeCopy2Model _model; final scaffoldKey = GlobalKey(); @override void initState() { super.initState(); _model = createModel(context, () => HomeCopy2Model()); _model.textController ??= TextEditingController() ..addListener(() { debugLogWidgetClass(_model); }); _model.textFieldFocusNode ??= FocusNode(); _model.tabBarController = TabController( vsync: this, length: 5, initialIndex: 0, ) ..addListener(() => safeSetState(() {})) ..addListener(() { debugLogWidgetClass(_model); }); } @override void dispose() { routeObserver.unsubscribe(this); _model.dispose(); super.dispose(); } @override void didUpdateWidget(HomeCopy2Widget 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 GestureDetector( onTap: () { FocusScope.of(context).unfocus(); FocusManager.instance.primaryFocus?.unfocus(); }, child: Scaffold( key: scaffoldKey, backgroundColor: FlutterFlowTheme.of(context).primaryBackground, drawer: Drawer( elevation: 16.0, child: wrapWithModel( model: _model.drawerComponentModel, updateCallback: () => safeSetState(() {}), child: Builder(builder: (_) { return DebugFlutterFlowModelContext( rootModel: _model.rootModel, child: DrawerComponentWidget(), ); }), ), ), appBar: PreferredSize( preferredSize: Size.fromHeight(50.0), child: AppBar( backgroundColor: FlutterFlowTheme.of(context).primaryText, iconTheme: IconThemeData(color: FlutterFlowTheme.of(context).secondary), automaticallyImplyLeading: false, actions: [], flexibleSpace: FlexibleSpaceBar( background: wrapWithModel( model: _model.headerButtonsComponentModel, updateCallback: () => safeSetState(() {}), child: Builder(builder: (_) { return DebugFlutterFlowModelContext( rootModel: _model.rootModel, child: HeaderButtonsComponentWidget( showBackButton: false, ), ); }), ), centerTitle: true, expandedTitleScale: 1.0, ), bottom: PreferredSize( preferredSize: Size.fromHeight(70.0), child: Container(), ), toolbarHeight: MediaQuery.sizeOf(context).height * 0.25, elevation: 2.0, ), ), body: SafeArea( top: true, child: Column( mainAxisSize: MainAxisSize.max, children: [ Container( width: 200.0, child: TextFormField( controller: _model.textController, focusNode: _model.textFieldFocusNode, onChanged: (_) => EasyDebounce.debounce( '_model.textController', Duration(milliseconds: 2000), () async { FFAppState().zoekterm = _model.textController.text; safeSetState(() {}); await actions.herlaadLijsten(); }, ), autofocus: false, enabled: true, obscureText: false, decoration: InputDecoration( isDense: true, labelStyle: FlutterFlowTheme.of(context).labelMedium.override( font: GoogleFonts.roboto( fontWeight: FlutterFlowTheme.of(context) .labelMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context) .labelMedium .fontStyle, ), letterSpacing: 0.0, fontWeight: FlutterFlowTheme.of(context) .labelMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context) .labelMedium .fontStyle, ), hintText: FFLocalizations.of(context).getText( 'mekk4pq5' /* Zoek op titel */, ), hintStyle: FlutterFlowTheme.of(context).labelMedium.override( font: GoogleFonts.roboto( fontWeight: FlutterFlowTheme.of(context) .labelMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context) .labelMedium .fontStyle, ), letterSpacing: 0.0, fontWeight: FlutterFlowTheme.of(context) .labelMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context) .labelMedium .fontStyle, ), enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: Color(0x00000000), width: 1.0, ), borderRadius: BorderRadius.circular(8.0), ), focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: Color(0x00000000), width: 1.0, ), borderRadius: BorderRadius.circular(8.0), ), errorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterFlowTheme.of(context).error, width: 1.0, ), borderRadius: BorderRadius.circular(8.0), ), focusedErrorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterFlowTheme.of(context).error, width: 1.0, ), borderRadius: BorderRadius.circular(8.0), ), filled: true, fillColor: FlutterFlowTheme.of(context).secondaryBackground, ), style: FlutterFlowTheme.of(context).bodyMedium.override( font: GoogleFonts.roboto( fontWeight: FlutterFlowTheme.of(context) .bodyMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context).bodyMedium.fontStyle, ), letterSpacing: 0.0, fontWeight: FlutterFlowTheme.of(context).bodyMedium.fontWeight, fontStyle: FlutterFlowTheme.of(context).bodyMedium.fontStyle, ), cursorColor: FlutterFlowTheme.of(context).primaryText, enableInteractiveSelection: true, validator: _model.textControllerValidator.asValidator(context), ), ), Material( color: Colors.transparent, elevation: 0.0, child: Container( height: 250.0, decoration: BoxDecoration(), child: wrapWithModel( model: _model.homeUitgaanSliderComponentModel, updateCallback: () => safeSetState(() {}), child: Builder(builder: (_) { return DebugFlutterFlowModelContext( rootModel: _model.rootModel, child: HomeUitgaanSliderComponentWidget( displayid: 'services_1', ), ); }), ), ), ), FlutterFlowChoiceChips( options: [ ChipData(FFLocalizations.of(context).getText( 'h5672897' /* Alles */, )), ChipData(FFLocalizations.of(context).getText( 'wt4i47fd' /* Vandaag */, )), ChipData(FFLocalizations.of(context).getText( 'fcb6a7vy' /* Dit weekend */, )), ChipData(FFLocalizations.of(context).getText( 'q7un7bnp' /* Deze week */, )) ], onChanged: (val) async { safeSetState( () => _model.choiceChipsValue = val?.firstOrNull); FFAppState().datumFilter = _model.choiceChipsValue!; safeSetState(() {}); await actions.herlaadLijsten(); }, selectedChipStyle: ChipStyle( backgroundColor: FlutterFlowTheme.of(context).secondary, textStyle: FlutterFlowTheme.of(context).bodyMedium.override( font: GoogleFonts.roboto( fontWeight: FlutterFlowTheme.of(context) .bodyMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context).bodyMedium.fontStyle, ), color: FlutterFlowTheme.of(context).info, letterSpacing: 0.0, fontWeight: FlutterFlowTheme.of(context).bodyMedium.fontWeight, fontStyle: FlutterFlowTheme.of(context).bodyMedium.fontStyle, ), iconColor: FlutterFlowTheme.of(context).info, iconSize: 16.0, elevation: 0.0, borderRadius: BorderRadius.circular(8.0), ), unselectedChipStyle: ChipStyle( backgroundColor: FlutterFlowTheme.of(context).secondaryBackground, textStyle: FlutterFlowTheme.of(context).bodyMedium.override( font: GoogleFonts.roboto( fontWeight: FlutterFlowTheme.of(context) .bodyMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context).bodyMedium.fontStyle, ), color: FlutterFlowTheme.of(context).secondaryText, letterSpacing: 0.0, fontWeight: FlutterFlowTheme.of(context).bodyMedium.fontWeight, fontStyle: FlutterFlowTheme.of(context).bodyMedium.fontStyle, ), iconColor: FlutterFlowTheme.of(context).secondaryText, iconSize: 16.0, elevation: 0.0, borderRadius: BorderRadius.circular(8.0), ), chipSpacing: 8.0, rowSpacing: 8.0, multiselect: false, initialized: _model.choiceChipsValue != null, alignment: WrapAlignment.start, controller: _model.choiceChipsValueController ??= FormFieldController>( [ FFLocalizations.of(context).getText( 'bz77r1r1' /* Alles */, ) ], ), wrapped: true, ), Expanded( child: Column( children: [ Align( alignment: Alignment(0.0, 0), child: TabBar( isScrollable: true, tabAlignment: TabAlignment.center, labelColor: FlutterFlowTheme.of(context).primaryText, unselectedLabelColor: FlutterFlowTheme.of(context).secondaryText, labelStyle: FlutterFlowTheme.of(context).titleMedium.override( font: GoogleFonts.roboto( fontWeight: FlutterFlowTheme.of(context) .titleMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context) .titleMedium .fontStyle, ), letterSpacing: 0.0, fontWeight: FlutterFlowTheme.of(context) .titleMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context) .titleMedium .fontStyle, ), unselectedLabelStyle: FlutterFlowTheme.of(context).titleMedium.override( font: GoogleFonts.roboto( fontWeight: FlutterFlowTheme.of(context) .titleMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context) .titleMedium .fontStyle, ), letterSpacing: 0.0, fontWeight: FlutterFlowTheme.of(context) .titleMedium .fontWeight, fontStyle: FlutterFlowTheme.of(context) .titleMedium .fontStyle, ), indicatorColor: FlutterFlowTheme.of(context).secondary, tabs: [ Tab( text: FFLocalizations.of(context).getText( 'ddmj640y' /* Uitgaan */, ), ), Tab( text: FFLocalizations.of(context).getText( 'va3qvqmz' /* Activiteiten */, ), ), Tab( text: FFLocalizations.of(context).getText( 'bl0f6fx0' /* Cultuur & Info */, ), ), Tab( text: FFLocalizations.of(context).getText( 'el9jnqjo' /* Films */, ), ), Tab( text: FFLocalizations.of(context).getText( 'j2plh81y' /* Jeugd */, ), ), ], controller: _model.tabBarController, onTap: (i) async { [ () async {}, () async { _model.tabActiviteitenGeladen = true; safeSetState(() {}); }, () async { _model.tabCultuurGeladen = true; safeSetState(() {}); }, () async { _model.tabFilmsGeladen = true; safeSetState(() {}); }, () async { _model.tabJeugdGeladen = true; safeSetState(() {}); } ][i](); }, ), ), Expanded( child: TabBarView( controller: _model.tabBarController, children: [ Column( mainAxisSize: MainAxisSize.max, children: [ Expanded( child: wrapWithModel( model: _model .homeUitgaantabelKaartComponentModel1, updateCallback: () => safeSetState(() {}), child: Builder(builder: (_) { return DebugFlutterFlowModelContext( rootModel: _model.rootModel, child: HomeUitgaantabelKaartComponentWidget( key: ValueKey(FFAppState().datumFilter), displayid: 'services_3', datumVan: functions.filterDatumVan( FFAppState().datumFilter), datumTot: functions.filterDatumTot( FFAppState().datumFilter), zoekterm: FFAppState().zoekterm, ), ); }), ), ), ], ), Builder( builder: (context) { if (_model.tabActiviteitenGeladen) { return Column( mainAxisSize: MainAxisSize.max, children: [ Expanded( child: wrapWithModel( model: _model .homeUitgaantabelKaartComponentModel2, updateCallback: () => safeSetState(() {}), child: Builder(builder: (_) { return DebugFlutterFlowModelContext( rootModel: _model.rootModel, child: HomeUitgaantabelKaartComponentWidget( key: ValueKey( FFAppState().datumFilter), displayid: 'services_4', datumVan: functions.filterDatumVan( FFAppState().datumFilter), datumTot: functions.filterDatumTot( FFAppState().datumFilter), zoekterm: FFAppState().zoekterm, ), ); }), ), ), ], ); } else { return Container( width: 100.0, height: 100.0, decoration: BoxDecoration( color: FlutterFlowTheme.of(context) .secondaryBackground, ), ); } }, ), Builder( builder: (context) { if (_model.tabCultuurGeladen) { return Column( mainAxisSize: MainAxisSize.max, children: [ Expanded( child: wrapWithModel( model: _model .homeUitgaantabelKaartComponentModel3, updateCallback: () => safeSetState(() {}), child: Builder(builder: (_) { return DebugFlutterFlowModelContext( rootModel: _model.rootModel, child: HomeUitgaantabelKaartComponentWidget( key: ValueKey( FFAppState().datumFilter), displayid: 'services_5', datumVan: functions.filterDatumVan( FFAppState().datumFilter), datumTot: functions.filterDatumTot( FFAppState().datumFilter), zoekterm: FFAppState().zoekterm, ), ); }), ), ), ], ); } else { return Container( width: 100.0, height: 100.0, decoration: BoxDecoration( color: FlutterFlowTheme.of(context) .secondaryBackground, ), ); } }, ), Builder( builder: (context) { if (_model.tabFilmsGeladen) { return Column( mainAxisSize: MainAxisSize.max, children: [ Expanded( child: wrapWithModel( model: _model .homeUitgaantabelKaartComponentModel4, updateCallback: () => safeSetState(() {}), child: Builder(builder: (_) { return DebugFlutterFlowModelContext( rootModel: _model.rootModel, child: HomeUitgaantabelKaartComponentWidget( key: ValueKey( FFAppState().datumFilter), displayid: 'services_6', datumVan: functions.filterDatumVan( FFAppState().datumFilter), datumTot: functions.filterDatumTot( FFAppState().datumFilter), zoekterm: FFAppState().zoekterm, ), ); }), ), ), ], ); } else { return Container( width: 100.0, height: 100.0, decoration: BoxDecoration( color: FlutterFlowTheme.of(context) .secondaryBackground, ), ); } }, ), Builder( builder: (context) { if (_model.tabJeugdGeladen) { return Column( mainAxisSize: MainAxisSize.max, children: [ Expanded( child: wrapWithModel( model: _model .homeUitgaantabelKaartComponentModel5, updateCallback: () => safeSetState(() {}), child: Builder(builder: (_) { return DebugFlutterFlowModelContext( rootModel: _model.rootModel, child: HomeUitgaantabelKaartComponentWidget( key: ValueKey( FFAppState().datumFilter), displayid: 'services_7', datumVan: functions.filterDatumVan( FFAppState().datumFilter), datumTot: functions.filterDatumTot( FFAppState().datumFilter), zoekterm: FFAppState().zoekterm, ), ); }), ), ), ], ); } else { return Container( width: 100.0, height: 100.0, decoration: BoxDecoration( color: FlutterFlowTheme.of(context) .secondaryBackground, ), ); } }, ), ], ), ), ], ), ), ], ), ), ), ); } }