home_widget.dart 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855
  1. import '/components/header_buttons_component_widget.dart';
  2. import '/flutter_flow/flutter_flow_choice_chips.dart';
  3. import '/flutter_flow/flutter_flow_icon_button.dart';
  4. import '/flutter_flow/flutter_flow_theme.dart';
  5. import '/flutter_flow/flutter_flow_util.dart';
  6. import '/flutter_flow/flutter_flow_widgets.dart';
  7. import '/flutter_flow/form_field_controller.dart';
  8. import '/shared/drawer_component/drawer_component_widget.dart';
  9. import '/uitgaanspaginas/home_uitgaan_slider_component/home_uitgaan_slider_component_widget.dart';
  10. import '/uitgaanspaginas/home_uitgaantabel_kaart_component/home_uitgaantabel_kaart_component_widget.dart';
  11. import 'dart:ui';
  12. import '/custom_code/actions/index.dart' as actions;
  13. import '/flutter_flow/custom_functions.dart' as functions;
  14. import 'package:easy_debounce/easy_debounce.dart';
  15. import 'package:flutter/foundation.dart';
  16. import 'package:flutter/material.dart';
  17. import 'package:flutter_spinkit/flutter_spinkit.dart';
  18. import 'package:google_fonts/google_fonts.dart';
  19. import 'package:provider/provider.dart';
  20. import 'home_model.dart';
  21. export 'home_model.dart';
  22. class HomeWidget extends StatefulWidget {
  23. const HomeWidget({super.key});
  24. static String routeName = 'home';
  25. static String routePath = '/home';
  26. @override
  27. State<HomeWidget> createState() => _HomeWidgetState();
  28. }
  29. class _HomeWidgetState extends State<HomeWidget>
  30. with TickerProviderStateMixin, RouteAware {
  31. late HomeModel _model;
  32. final scaffoldKey = GlobalKey<ScaffoldState>();
  33. @override
  34. void initState() {
  35. super.initState();
  36. _model = createModel(context, () => HomeModel());
  37. _model.textController ??= TextEditingController()
  38. ..addListener(() {
  39. debugLogWidgetClass(_model);
  40. });
  41. _model.textFieldFocusNode ??= FocusNode();
  42. _model.textFieldFocusNode!.addListener(
  43. () async {
  44. safeSetState(() {});
  45. },
  46. );
  47. _model.tabBarController = TabController(
  48. vsync: this,
  49. length: 5,
  50. initialIndex: 0,
  51. )
  52. ..addListener(() => safeSetState(() {}))
  53. ..addListener(() {
  54. debugLogWidgetClass(_model);
  55. });
  56. }
  57. @override
  58. void dispose() {
  59. routeObserver.unsubscribe(this);
  60. _model.dispose();
  61. super.dispose();
  62. }
  63. @override
  64. void didUpdateWidget(HomeWidget oldWidget) {
  65. super.didUpdateWidget(oldWidget);
  66. _model.widget = widget;
  67. }
  68. @override
  69. void didChangeDependencies() {
  70. super.didChangeDependencies();
  71. final route = DebugModalRoute.of(context);
  72. if (route != null) {
  73. routeObserver.subscribe(this, route);
  74. }
  75. debugLogGlobalProperty(context);
  76. }
  77. @override
  78. void didPopNext() {
  79. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  80. setState(() => _model.isRouteVisible = true);
  81. debugLogWidgetClass(_model);
  82. }
  83. }
  84. @override
  85. void didPush() {
  86. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  87. setState(() => _model.isRouteVisible = true);
  88. debugLogWidgetClass(_model);
  89. }
  90. }
  91. @override
  92. void didPop() {
  93. _model.isRouteVisible = false;
  94. }
  95. @override
  96. void didPushNext() {
  97. _model.isRouteVisible = false;
  98. }
  99. @override
  100. Widget build(BuildContext context) {
  101. DebugFlutterFlowModelContext.maybeOf(context)
  102. ?.parentModelCallback
  103. ?.call(_model);
  104. context.watch<FFAppState>();
  105. return GestureDetector(
  106. onTap: () {
  107. FocusScope.of(context).unfocus();
  108. FocusManager.instance.primaryFocus?.unfocus();
  109. },
  110. child: Scaffold(
  111. key: scaffoldKey,
  112. resizeToAvoidBottomInset: false,
  113. backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
  114. drawer: Drawer(
  115. elevation: 16.0,
  116. child: wrapWithModel(
  117. model: _model.drawerComponentModel,
  118. updateCallback: () => safeSetState(() {}),
  119. child: Builder(builder: (_) {
  120. return DebugFlutterFlowModelContext(
  121. rootModel: _model.rootModel,
  122. child: DrawerComponentWidget(),
  123. );
  124. }),
  125. ),
  126. ),
  127. appBar: PreferredSize(
  128. preferredSize: Size.fromHeight(50.0),
  129. child: AppBar(
  130. backgroundColor: FlutterFlowTheme.of(context).primaryText,
  131. iconTheme:
  132. IconThemeData(color: FlutterFlowTheme.of(context).secondary),
  133. automaticallyImplyLeading: false,
  134. actions: [],
  135. flexibleSpace: FlexibleSpaceBar(
  136. background: wrapWithModel(
  137. model: _model.headerButtonsComponentModel,
  138. updateCallback: () => safeSetState(() {}),
  139. child: Builder(builder: (_) {
  140. return DebugFlutterFlowModelContext(
  141. rootModel: _model.rootModel,
  142. child: HeaderButtonsComponentWidget(
  143. showBackButton: false,
  144. ),
  145. );
  146. }),
  147. ),
  148. centerTitle: true,
  149. expandedTitleScale: 1.0,
  150. ),
  151. bottom: PreferredSize(
  152. preferredSize: Size.fromHeight(70.0),
  153. child: Container(),
  154. ),
  155. toolbarHeight: MediaQuery.sizeOf(context).height * 0.25,
  156. elevation: 2.0,
  157. ),
  158. ),
  159. body: SafeArea(
  160. top: true,
  161. child: Column(
  162. mainAxisSize: MainAxisSize.max,
  163. children: [
  164. if (!(_model.textFieldFocusNode?.hasFocus ?? false))
  165. Material(
  166. color: Colors.transparent,
  167. elevation: 0.0,
  168. child: Container(
  169. height: 280.0,
  170. decoration: BoxDecoration(),
  171. child: wrapWithModel(
  172. model: _model.homeUitgaanSliderComponentModel,
  173. updateCallback: () => safeSetState(() {}),
  174. child: Builder(builder: (_) {
  175. return DebugFlutterFlowModelContext(
  176. rootModel: _model.rootModel,
  177. child: HomeUitgaanSliderComponentWidget(
  178. displayid: 'services_1',
  179. ),
  180. );
  181. }),
  182. ),
  183. ),
  184. ),
  185. if (_model.zoekOpen)
  186. Container(
  187. width: double.infinity,
  188. child: TextFormField(
  189. controller: _model.textController,
  190. focusNode: _model.textFieldFocusNode,
  191. onChanged: (_) => EasyDebounce.debounce(
  192. '_model.textController',
  193. Duration(milliseconds: 2000),
  194. () async {
  195. FFAppState().zoekterm = _model.textController.text;
  196. safeSetState(() {});
  197. await actions.herlaadLijsten();
  198. },
  199. ),
  200. autofocus: false,
  201. enabled: true,
  202. obscureText: false,
  203. decoration: InputDecoration(
  204. isDense: true,
  205. labelStyle:
  206. FlutterFlowTheme.of(context).labelMedium.override(
  207. font: GoogleFonts.roboto(
  208. fontWeight: FlutterFlowTheme.of(context)
  209. .labelMedium
  210. .fontWeight,
  211. fontStyle: FlutterFlowTheme.of(context)
  212. .labelMedium
  213. .fontStyle,
  214. ),
  215. letterSpacing: 0.0,
  216. fontWeight: FlutterFlowTheme.of(context)
  217. .labelMedium
  218. .fontWeight,
  219. fontStyle: FlutterFlowTheme.of(context)
  220. .labelMedium
  221. .fontStyle,
  222. ),
  223. hintText: FFLocalizations.of(context).getText(
  224. 'qflzdn1h' /* Zoek op titel */,
  225. ),
  226. hintStyle:
  227. FlutterFlowTheme.of(context).labelMedium.override(
  228. font: GoogleFonts.roboto(
  229. fontWeight: FlutterFlowTheme.of(context)
  230. .labelMedium
  231. .fontWeight,
  232. fontStyle: FlutterFlowTheme.of(context)
  233. .labelMedium
  234. .fontStyle,
  235. ),
  236. letterSpacing: 0.0,
  237. fontWeight: FlutterFlowTheme.of(context)
  238. .labelMedium
  239. .fontWeight,
  240. fontStyle: FlutterFlowTheme.of(context)
  241. .labelMedium
  242. .fontStyle,
  243. ),
  244. enabledBorder: OutlineInputBorder(
  245. borderSide: BorderSide(
  246. color: Color(0x00000000),
  247. width: 1.0,
  248. ),
  249. borderRadius: BorderRadius.circular(8.0),
  250. ),
  251. focusedBorder: OutlineInputBorder(
  252. borderSide: BorderSide(
  253. color: Color(0x00000000),
  254. width: 1.0,
  255. ),
  256. borderRadius: BorderRadius.circular(8.0),
  257. ),
  258. errorBorder: OutlineInputBorder(
  259. borderSide: BorderSide(
  260. color: FlutterFlowTheme.of(context).error,
  261. width: 1.0,
  262. ),
  263. borderRadius: BorderRadius.circular(8.0),
  264. ),
  265. focusedErrorBorder: OutlineInputBorder(
  266. borderSide: BorderSide(
  267. color: FlutterFlowTheme.of(context).error,
  268. width: 1.0,
  269. ),
  270. borderRadius: BorderRadius.circular(8.0),
  271. ),
  272. filled: true,
  273. fillColor:
  274. FlutterFlowTheme.of(context).secondaryBackground,
  275. ),
  276. style: FlutterFlowTheme.of(context).bodyMedium.override(
  277. font: GoogleFonts.roboto(
  278. fontWeight: FlutterFlowTheme.of(context)
  279. .bodyMedium
  280. .fontWeight,
  281. fontStyle: FlutterFlowTheme.of(context)
  282. .bodyMedium
  283. .fontStyle,
  284. ),
  285. letterSpacing: 0.0,
  286. fontWeight: FlutterFlowTheme.of(context)
  287. .bodyMedium
  288. .fontWeight,
  289. fontStyle:
  290. FlutterFlowTheme.of(context).bodyMedium.fontStyle,
  291. ),
  292. cursorColor: FlutterFlowTheme.of(context).primaryText,
  293. enableInteractiveSelection: true,
  294. validator:
  295. _model.textControllerValidator.asValidator(context),
  296. ),
  297. ),
  298. Row(
  299. mainAxisSize: MainAxisSize.max,
  300. children: [
  301. FlutterFlowIconButton(
  302. borderRadius: 8.0,
  303. buttonSize: 40.0,
  304. fillColor: FlutterFlowTheme.of(context).secondaryBackground,
  305. icon: Icon(
  306. Icons.search,
  307. color: FlutterFlowTheme.of(context).primaryText,
  308. size: 24.0,
  309. ),
  310. onPressed: () async {
  311. _model.zoekOpen = !_model.zoekOpen;
  312. safeSetState(() {});
  313. safeSetState(() {
  314. _model.textController?.clear();
  315. });
  316. FFAppState().zoekterm = '';
  317. safeSetState(() {});
  318. await actions.herlaadLijsten();
  319. },
  320. ),
  321. FlutterFlowIconButton(
  322. borderRadius: 8.0,
  323. buttonSize: 40.0,
  324. fillColor: FlutterFlowTheme.of(context).secondaryBackground,
  325. icon: Icon(
  326. Icons.calendar_month,
  327. color: FlutterFlowTheme.of(context).primaryText,
  328. size: 24.0,
  329. ),
  330. onPressed: () async {
  331. final _datePickedDate = await showDatePicker(
  332. context: context,
  333. initialDate: getCurrentTimestamp,
  334. firstDate: getCurrentTimestamp,
  335. lastDate: DateTime(2050),
  336. builder: (context, child) {
  337. return wrapInMaterialDatePickerTheme(
  338. context,
  339. child!,
  340. headerBackgroundColor:
  341. FlutterFlowTheme.of(context).primary,
  342. headerForegroundColor:
  343. FlutterFlowTheme.of(context).info,
  344. headerTextStyle: FlutterFlowTheme.of(context)
  345. .headlineLarge
  346. .override(
  347. font: GoogleFonts.notoSerif(
  348. fontWeight: FontWeight.w600,
  349. fontStyle: FlutterFlowTheme.of(context)
  350. .headlineLarge
  351. .fontStyle,
  352. ),
  353. fontSize: 32.0,
  354. letterSpacing: 0.0,
  355. fontWeight: FontWeight.w600,
  356. fontStyle: FlutterFlowTheme.of(context)
  357. .headlineLarge
  358. .fontStyle,
  359. ),
  360. pickerBackgroundColor: FlutterFlowTheme.of(context)
  361. .secondaryBackground,
  362. pickerForegroundColor:
  363. FlutterFlowTheme.of(context).primaryText,
  364. selectedDateTimeBackgroundColor:
  365. FlutterFlowTheme.of(context).primary,
  366. selectedDateTimeForegroundColor:
  367. FlutterFlowTheme.of(context).info,
  368. actionButtonForegroundColor:
  369. FlutterFlowTheme.of(context).primaryText,
  370. iconSize: 24.0,
  371. );
  372. },
  373. );
  374. if (_datePickedDate != null) {
  375. safeSetState(() {
  376. _model.datePicked = DateTime(
  377. _datePickedDate.year,
  378. _datePickedDate.month,
  379. _datePickedDate.day,
  380. );
  381. });
  382. } else if (_model.datePicked != null) {
  383. safeSetState(() {
  384. _model.datePicked = getCurrentTimestamp;
  385. });
  386. }
  387. FFAppState().datumFilter = dateTimeFormat(
  388. "yyyy-MM-dd",
  389. _model.datePicked,
  390. locale: FFLocalizations.of(context).languageCode,
  391. );
  392. safeSetState(() {});
  393. await actions.herlaadLijsten();
  394. },
  395. ),
  396. Text(
  397. FFAppState().datumFilter,
  398. style: FlutterFlowTheme.of(context).bodyMedium.override(
  399. font: GoogleFonts.roboto(
  400. fontWeight: FlutterFlowTheme.of(context)
  401. .bodyMedium
  402. .fontWeight,
  403. fontStyle: FlutterFlowTheme.of(context)
  404. .bodyMedium
  405. .fontStyle,
  406. ),
  407. letterSpacing: 0.0,
  408. fontWeight: FlutterFlowTheme.of(context)
  409. .bodyMedium
  410. .fontWeight,
  411. fontStyle:
  412. FlutterFlowTheme.of(context).bodyMedium.fontStyle,
  413. ),
  414. ),
  415. Expanded(
  416. child: FlutterFlowChoiceChips(
  417. options: [
  418. ChipData(FFLocalizations.of(context).getText(
  419. '8khvlnye' /* Alles */,
  420. )),
  421. ChipData(FFLocalizations.of(context).getText(
  422. 'iov8u1yi' /* Vandaag */,
  423. )),
  424. ChipData(FFLocalizations.of(context).getText(
  425. 'gco4jgol' /* Dit weekend */,
  426. )),
  427. ChipData(FFLocalizations.of(context).getText(
  428. 'h6ou1q9q' /* Deze week */,
  429. ))
  430. ],
  431. onChanged: (val) async {
  432. safeSetState(
  433. () => _model.choiceChipsValue = val?.firstOrNull);
  434. FFAppState().datumFilter = _model.choiceChipsValue!;
  435. safeSetState(() {});
  436. await actions.herlaadLijsten();
  437. },
  438. selectedChipStyle: ChipStyle(
  439. backgroundColor: FlutterFlowTheme.of(context).secondary,
  440. textStyle:
  441. FlutterFlowTheme.of(context).bodyMedium.override(
  442. font: GoogleFonts.roboto(
  443. fontWeight: FlutterFlowTheme.of(context)
  444. .bodyMedium
  445. .fontWeight,
  446. fontStyle: FlutterFlowTheme.of(context)
  447. .bodyMedium
  448. .fontStyle,
  449. ),
  450. color: FlutterFlowTheme.of(context).info,
  451. letterSpacing: 0.0,
  452. fontWeight: FlutterFlowTheme.of(context)
  453. .bodyMedium
  454. .fontWeight,
  455. fontStyle: FlutterFlowTheme.of(context)
  456. .bodyMedium
  457. .fontStyle,
  458. ),
  459. iconColor: FlutterFlowTheme.of(context).info,
  460. iconSize: 16.0,
  461. elevation: 0.0,
  462. borderRadius: BorderRadius.circular(8.0),
  463. ),
  464. unselectedChipStyle: ChipStyle(
  465. backgroundColor:
  466. FlutterFlowTheme.of(context).secondaryBackground,
  467. textStyle: FlutterFlowTheme.of(context)
  468. .bodyMedium
  469. .override(
  470. font: GoogleFonts.roboto(
  471. fontWeight: FlutterFlowTheme.of(context)
  472. .bodyMedium
  473. .fontWeight,
  474. fontStyle: FlutterFlowTheme.of(context)
  475. .bodyMedium
  476. .fontStyle,
  477. ),
  478. color: FlutterFlowTheme.of(context).secondaryText,
  479. letterSpacing: 0.0,
  480. fontWeight: FlutterFlowTheme.of(context)
  481. .bodyMedium
  482. .fontWeight,
  483. fontStyle: FlutterFlowTheme.of(context)
  484. .bodyMedium
  485. .fontStyle,
  486. ),
  487. iconColor: FlutterFlowTheme.of(context).secondaryText,
  488. iconSize: 16.0,
  489. elevation: 0.0,
  490. borderRadius: BorderRadius.circular(8.0),
  491. ),
  492. chipSpacing: 8.0,
  493. rowSpacing: 8.0,
  494. multiselect: false,
  495. initialized: _model.choiceChipsValue != null,
  496. alignment: WrapAlignment.start,
  497. controller: _model.choiceChipsValueController ??=
  498. FormFieldController<List<String>>(
  499. [
  500. FFLocalizations.of(context).getText(
  501. 'g09d1fb5' /* Alles */,
  502. )
  503. ],
  504. ),
  505. wrapped: true,
  506. ),
  507. ),
  508. ],
  509. ),
  510. Expanded(
  511. child: Column(
  512. children: [
  513. Align(
  514. alignment: Alignment(0.0, 0),
  515. child: TabBar(
  516. isScrollable: true,
  517. tabAlignment: TabAlignment.center,
  518. labelColor: FlutterFlowTheme.of(context).primaryText,
  519. unselectedLabelColor:
  520. FlutterFlowTheme.of(context).secondaryText,
  521. labelStyle:
  522. FlutterFlowTheme.of(context).titleMedium.override(
  523. font: GoogleFonts.roboto(
  524. fontWeight: FlutterFlowTheme.of(context)
  525. .titleMedium
  526. .fontWeight,
  527. fontStyle: FlutterFlowTheme.of(context)
  528. .titleMedium
  529. .fontStyle,
  530. ),
  531. letterSpacing: 0.0,
  532. fontWeight: FlutterFlowTheme.of(context)
  533. .titleMedium
  534. .fontWeight,
  535. fontStyle: FlutterFlowTheme.of(context)
  536. .titleMedium
  537. .fontStyle,
  538. ),
  539. unselectedLabelStyle:
  540. FlutterFlowTheme.of(context).titleMedium.override(
  541. font: GoogleFonts.roboto(
  542. fontWeight: FlutterFlowTheme.of(context)
  543. .titleMedium
  544. .fontWeight,
  545. fontStyle: FlutterFlowTheme.of(context)
  546. .titleMedium
  547. .fontStyle,
  548. ),
  549. letterSpacing: 0.0,
  550. fontWeight: FlutterFlowTheme.of(context)
  551. .titleMedium
  552. .fontWeight,
  553. fontStyle: FlutterFlowTheme.of(context)
  554. .titleMedium
  555. .fontStyle,
  556. ),
  557. indicatorColor: FlutterFlowTheme.of(context).secondary,
  558. tabs: [
  559. Tab(
  560. text: FFLocalizations.of(context).getText(
  561. 'eor4c9rz' /* Uitgaan */,
  562. ),
  563. ),
  564. Tab(
  565. text: FFLocalizations.of(context).getText(
  566. 'mx7sn4ne' /* Activiteiten */,
  567. ),
  568. ),
  569. Tab(
  570. text: FFLocalizations.of(context).getText(
  571. 'e6xyyt74' /* Cultuur & Info */,
  572. ),
  573. ),
  574. Tab(
  575. text: FFLocalizations.of(context).getText(
  576. 'uxy2nfok' /* Films */,
  577. ),
  578. ),
  579. Tab(
  580. text: FFLocalizations.of(context).getText(
  581. 'lx77xfrn' /* Jeugd */,
  582. ),
  583. ),
  584. ],
  585. controller: _model.tabBarController,
  586. onTap: (i) async {
  587. [
  588. () async {},
  589. () async {
  590. _model.tabActiviteitenGeladen = true;
  591. safeSetState(() {});
  592. },
  593. () async {
  594. _model.tabCultuurGeladen = true;
  595. safeSetState(() {});
  596. },
  597. () async {
  598. _model.tabFilmsGeladen = true;
  599. safeSetState(() {});
  600. },
  601. () async {
  602. _model.tabJeugdGeladen = true;
  603. safeSetState(() {});
  604. }
  605. ][i]();
  606. },
  607. ),
  608. ),
  609. Expanded(
  610. child: TabBarView(
  611. controller: _model.tabBarController,
  612. children: [
  613. Column(
  614. mainAxisSize: MainAxisSize.max,
  615. children: [
  616. Expanded(
  617. child: wrapWithModel(
  618. model: _model
  619. .homeUitgaantabelKaartComponentModel1,
  620. updateCallback: () => safeSetState(() {}),
  621. child: Builder(builder: (_) {
  622. return DebugFlutterFlowModelContext(
  623. rootModel: _model.rootModel,
  624. child:
  625. HomeUitgaantabelKaartComponentWidget(
  626. key: ValueKey(FFAppState().datumFilter),
  627. displayid: 'services_3',
  628. datumVan: functions.filterDatumVan(
  629. FFAppState().datumFilter),
  630. datumTot: functions.filterDatumTot(
  631. FFAppState().datumFilter),
  632. zoekterm: FFAppState().zoekterm,
  633. ),
  634. );
  635. }),
  636. ),
  637. ),
  638. ],
  639. ),
  640. Builder(
  641. builder: (context) {
  642. if (_model.tabActiviteitenGeladen) {
  643. return Column(
  644. mainAxisSize: MainAxisSize.max,
  645. children: [
  646. Expanded(
  647. child: wrapWithModel(
  648. model: _model
  649. .homeUitgaantabelKaartComponentModel2,
  650. updateCallback: () =>
  651. safeSetState(() {}),
  652. child: Builder(builder: (_) {
  653. return DebugFlutterFlowModelContext(
  654. rootModel: _model.rootModel,
  655. child:
  656. HomeUitgaantabelKaartComponentWidget(
  657. key: ValueKey(
  658. FFAppState().datumFilter),
  659. displayid: 'services_4',
  660. datumVan:
  661. functions.filterDatumVan(
  662. FFAppState().datumFilter),
  663. datumTot:
  664. functions.filterDatumTot(
  665. FFAppState().datumFilter),
  666. zoekterm: FFAppState().zoekterm,
  667. ),
  668. );
  669. }),
  670. ),
  671. ),
  672. ],
  673. );
  674. } else {
  675. return Container(
  676. width: 100.0,
  677. height: 100.0,
  678. decoration: BoxDecoration(
  679. color: FlutterFlowTheme.of(context)
  680. .secondaryBackground,
  681. ),
  682. );
  683. }
  684. },
  685. ),
  686. Builder(
  687. builder: (context) {
  688. if (_model.tabCultuurGeladen) {
  689. return Column(
  690. mainAxisSize: MainAxisSize.max,
  691. children: [
  692. Expanded(
  693. child: wrapWithModel(
  694. model: _model
  695. .homeUitgaantabelKaartComponentModel3,
  696. updateCallback: () =>
  697. safeSetState(() {}),
  698. child: Builder(builder: (_) {
  699. return DebugFlutterFlowModelContext(
  700. rootModel: _model.rootModel,
  701. child:
  702. HomeUitgaantabelKaartComponentWidget(
  703. key: ValueKey(
  704. FFAppState().datumFilter),
  705. displayid: 'services_5',
  706. datumVan:
  707. functions.filterDatumVan(
  708. FFAppState().datumFilter),
  709. datumTot:
  710. functions.filterDatumTot(
  711. FFAppState().datumFilter),
  712. zoekterm: FFAppState().zoekterm,
  713. ),
  714. );
  715. }),
  716. ),
  717. ),
  718. ],
  719. );
  720. } else {
  721. return Container(
  722. width: 100.0,
  723. height: 100.0,
  724. decoration: BoxDecoration(
  725. color: FlutterFlowTheme.of(context)
  726. .secondaryBackground,
  727. ),
  728. );
  729. }
  730. },
  731. ),
  732. Builder(
  733. builder: (context) {
  734. if (_model.tabFilmsGeladen) {
  735. return Column(
  736. mainAxisSize: MainAxisSize.max,
  737. children: [
  738. Expanded(
  739. child: wrapWithModel(
  740. model: _model
  741. .homeUitgaantabelKaartComponentModel4,
  742. updateCallback: () =>
  743. safeSetState(() {}),
  744. child: Builder(builder: (_) {
  745. return DebugFlutterFlowModelContext(
  746. rootModel: _model.rootModel,
  747. child:
  748. HomeUitgaantabelKaartComponentWidget(
  749. key: ValueKey(
  750. FFAppState().datumFilter),
  751. displayid: 'services_6',
  752. datumVan:
  753. functions.filterDatumVan(
  754. FFAppState().datumFilter),
  755. datumTot:
  756. functions.filterDatumTot(
  757. FFAppState().datumFilter),
  758. zoekterm: FFAppState().zoekterm,
  759. ),
  760. );
  761. }),
  762. ),
  763. ),
  764. ],
  765. );
  766. } else {
  767. return Container(
  768. width: 100.0,
  769. height: 100.0,
  770. decoration: BoxDecoration(
  771. color: FlutterFlowTheme.of(context)
  772. .secondaryBackground,
  773. ),
  774. );
  775. }
  776. },
  777. ),
  778. Builder(
  779. builder: (context) {
  780. if (_model.tabJeugdGeladen) {
  781. return Column(
  782. mainAxisSize: MainAxisSize.max,
  783. children: [
  784. Expanded(
  785. child: wrapWithModel(
  786. model: _model
  787. .homeUitgaantabelKaartComponentModel5,
  788. updateCallback: () =>
  789. safeSetState(() {}),
  790. child: Builder(builder: (_) {
  791. return DebugFlutterFlowModelContext(
  792. rootModel: _model.rootModel,
  793. child:
  794. HomeUitgaantabelKaartComponentWidget(
  795. key: ValueKey(
  796. FFAppState().datumFilter),
  797. displayid: 'services_7',
  798. datumVan:
  799. functions.filterDatumVan(
  800. FFAppState().datumFilter),
  801. datumTot:
  802. functions.filterDatumTot(
  803. FFAppState().datumFilter),
  804. zoekterm: FFAppState().zoekterm,
  805. ),
  806. );
  807. }),
  808. ),
  809. ),
  810. ],
  811. );
  812. } else {
  813. return Container(
  814. width: 100.0,
  815. height: 100.0,
  816. decoration: BoxDecoration(
  817. color: FlutterFlowTheme.of(context)
  818. .secondaryBackground,
  819. ),
  820. );
  821. }
  822. },
  823. ),
  824. ],
  825. ),
  826. ),
  827. ],
  828. ),
  829. ),
  830. ],
  831. ),
  832. ),
  833. ),
  834. );
  835. }
  836. }