favorieten_widget.dart 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084
  1. import '/components/header_buttons_component_widget.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 '/horecagelegenhedenoverzicht/horecagelegenheidoverzicht_kaart/horecagelegenheidoverzicht_kaart_widget.dart';
  6. import '/shared/drawer_component/drawer_component_widget.dart';
  7. import '/uitgaanspaginas/uitgaantabel_kaart/uitgaantabel_kaart_widget.dart';
  8. import 'dart:async';
  9. import 'dart:ui';
  10. import '/custom_code/actions/index.dart' as actions;
  11. import '/flutter_flow/custom_functions.dart' as functions;
  12. import '/index.dart';
  13. import 'package:flutter/material.dart';
  14. import 'package:flutter/scheduler.dart';
  15. import 'package:flutter_spinkit/flutter_spinkit.dart';
  16. import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
  17. import 'package:google_fonts/google_fonts.dart';
  18. import 'package:provider/provider.dart';
  19. import 'favorieten_model.dart';
  20. export 'favorieten_model.dart';
  21. class FavorietenWidget extends StatefulWidget {
  22. const FavorietenWidget({super.key});
  23. static String routeName = 'favorieten';
  24. static String routePath = '/favorieten';
  25. @override
  26. State<FavorietenWidget> createState() => _FavorietenWidgetState();
  27. }
  28. class _FavorietenWidgetState extends State<FavorietenWidget>
  29. with TickerProviderStateMixin, RouteAware {
  30. late FavorietenModel _model;
  31. final scaffoldKey = GlobalKey<ScaffoldState>();
  32. @override
  33. void initState() {
  34. super.initState();
  35. _model = createModel(context, () => FavorietenModel());
  36. // On page load action.
  37. SchedulerBinding.instance.addPostFrameCallback((_) async {
  38. _model.responseActionDrupalRequestPageLoad = await actions.drupalRequest(
  39. 'GET',
  40. 'https://uitgaanskrant.com/nl/flutterdrup/favorieten_agenda.json',
  41. FFAppState().userSessionname,
  42. FFAppState().userSessionid,
  43. FFAppState().userToken,
  44. '',
  45. );
  46. _model.favorietenAgenda =
  47. _model.responseActionDrupalRequestPageLoad!.toList().cast<dynamic>();
  48. safeSetState(() {});
  49. });
  50. _model.tabBarController = TabController(
  51. vsync: this,
  52. length: 4,
  53. initialIndex: 0,
  54. )
  55. ..addListener(() => safeSetState(() {}))
  56. ..addListener(() {
  57. debugLogWidgetClass(_model);
  58. });
  59. }
  60. @override
  61. void dispose() {
  62. routeObserver.unsubscribe(this);
  63. _model.dispose();
  64. super.dispose();
  65. }
  66. @override
  67. void didUpdateWidget(FavorietenWidget oldWidget) {
  68. super.didUpdateWidget(oldWidget);
  69. _model.widget = widget;
  70. }
  71. @override
  72. void didChangeDependencies() {
  73. super.didChangeDependencies();
  74. final route = DebugModalRoute.of(context);
  75. if (route != null) {
  76. routeObserver.subscribe(this, route);
  77. }
  78. debugLogGlobalProperty(context);
  79. }
  80. @override
  81. void didPopNext() {
  82. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  83. setState(() => _model.isRouteVisible = true);
  84. debugLogWidgetClass(_model);
  85. }
  86. }
  87. @override
  88. void didPush() {
  89. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  90. setState(() => _model.isRouteVisible = true);
  91. debugLogWidgetClass(_model);
  92. }
  93. }
  94. @override
  95. void didPop() {
  96. _model.isRouteVisible = false;
  97. }
  98. @override
  99. void didPushNext() {
  100. _model.isRouteVisible = false;
  101. }
  102. @override
  103. Widget build(BuildContext context) {
  104. DebugFlutterFlowModelContext.maybeOf(context)
  105. ?.parentModelCallback
  106. ?.call(_model);
  107. context.watch<FFAppState>();
  108. _model.uitgaantabelKaartModels.clear();
  109. _model.horecagelegenheidoverzichtKaartModels.clear();
  110. return GestureDetector(
  111. onTap: () {
  112. FocusScope.of(context).unfocus();
  113. FocusManager.instance.primaryFocus?.unfocus();
  114. },
  115. child: Scaffold(
  116. key: scaffoldKey,
  117. backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
  118. drawer: Drawer(
  119. elevation: 16.0,
  120. child: wrapWithModel(
  121. model: _model.drawerComponentModel,
  122. updateCallback: () => safeSetState(() {}),
  123. child: Builder(builder: (_) {
  124. return DebugFlutterFlowModelContext(
  125. rootModel: _model.rootModel,
  126. child: DrawerComponentWidget(),
  127. );
  128. }),
  129. ),
  130. ),
  131. appBar: PreferredSize(
  132. preferredSize: Size.fromHeight(80.0),
  133. child: AppBar(
  134. backgroundColor: FlutterFlowTheme.of(context).info,
  135. automaticallyImplyLeading: false,
  136. actions: [],
  137. flexibleSpace: FlexibleSpaceBar(
  138. title: wrapWithModel(
  139. model: _model.headerButtonsComponentModel,
  140. updateCallback: () => safeSetState(() {}),
  141. child: Builder(builder: (_) {
  142. return DebugFlutterFlowModelContext(
  143. rootModel: _model.rootModel,
  144. child: HeaderButtonsComponentWidget(
  145. showBackButton: false,
  146. ),
  147. );
  148. }),
  149. ),
  150. centerTitle: true,
  151. expandedTitleScale: 1.0,
  152. ),
  153. elevation: 0.0,
  154. ),
  155. ),
  156. body: SafeArea(
  157. top: true,
  158. child: Column(
  159. mainAxisSize: MainAxisSize.max,
  160. children: [
  161. Expanded(
  162. child: Column(
  163. children: [
  164. Align(
  165. alignment: Alignment(0.0, 0),
  166. child: TabBar(
  167. isScrollable: true,
  168. tabAlignment: TabAlignment.center,
  169. labelColor: FlutterFlowTheme.of(context).primaryText,
  170. unselectedLabelColor:
  171. FlutterFlowTheme.of(context).secondaryText,
  172. labelStyle:
  173. FlutterFlowTheme.of(context).titleMedium.override(
  174. font: GoogleFonts.roboto(
  175. fontWeight: FlutterFlowTheme.of(context)
  176. .titleMedium
  177. .fontWeight,
  178. fontStyle: FlutterFlowTheme.of(context)
  179. .titleMedium
  180. .fontStyle,
  181. ),
  182. letterSpacing: 0.0,
  183. fontWeight: FlutterFlowTheme.of(context)
  184. .titleMedium
  185. .fontWeight,
  186. fontStyle: FlutterFlowTheme.of(context)
  187. .titleMedium
  188. .fontStyle,
  189. ),
  190. unselectedLabelStyle:
  191. FlutterFlowTheme.of(context).titleMedium.override(
  192. font: GoogleFonts.roboto(
  193. fontWeight: FlutterFlowTheme.of(context)
  194. .titleMedium
  195. .fontWeight,
  196. fontStyle: FlutterFlowTheme.of(context)
  197. .titleMedium
  198. .fontStyle,
  199. ),
  200. letterSpacing: 0.0,
  201. fontWeight: FlutterFlowTheme.of(context)
  202. .titleMedium
  203. .fontWeight,
  204. fontStyle: FlutterFlowTheme.of(context)
  205. .titleMedium
  206. .fontStyle,
  207. ),
  208. indicatorColor: FlutterFlowTheme.of(context).secondary,
  209. tabs: [
  210. Tab(
  211. text: FFLocalizations.of(context).getText(
  212. 'txq7zl0f' /* Persoonlijke agenda */,
  213. ),
  214. ),
  215. Tab(
  216. text: FFLocalizations.of(context).getText(
  217. '9wq117bv' /* Favoriete gemeenten */,
  218. ),
  219. ),
  220. Tab(
  221. text: FFLocalizations.of(context).getText(
  222. 'ygk8aifq' /* Favoriete Gelegenheden */,
  223. ),
  224. ),
  225. Tab(
  226. text: FFLocalizations.of(context).getText(
  227. 'jwojezxv' /* Gebruiker */,
  228. ),
  229. ),
  230. ],
  231. controller: _model.tabBarController,
  232. onTap: (i) async {
  233. [
  234. () async {
  235. _model.responsActionDrupalRequest =
  236. await actions.drupalRequest(
  237. 'GET',
  238. 'https://uitgaanskrant.com/nl/flutterdrup/favorieten_agenda.json',
  239. FFAppState().userSessionname,
  240. FFAppState().userSessionid,
  241. FFAppState().userToken,
  242. '',
  243. );
  244. _model.favorietenAgenda = _model
  245. .responsActionDrupalRequest!
  246. .toList()
  247. .cast<dynamic>();
  248. safeSetState(() {});
  249. safeSetState(() {});
  250. },
  251. () async {
  252. _model.resultFavorietegemeenten =
  253. await actions.drupalRequest(
  254. 'GET',
  255. 'https://uitgaanskrant.com/nl/flutterdrup/favorieten_gemeenten.json',
  256. FFAppState().userSessionname,
  257. FFAppState().userSessionid,
  258. FFAppState().userToken,
  259. '',
  260. );
  261. _model.favorietenGemeenten = _model
  262. .resultFavorietegemeenten!
  263. .toList()
  264. .cast<dynamic>();
  265. safeSetState(() {});
  266. safeSetState(() {});
  267. },
  268. () async {
  269. _model.responseFavorieteHoreca =
  270. await actions.drupalRequest(
  271. 'GET',
  272. 'https://uitgaanskrant.com/nl/flutterdrup/favorieten_horeca.json',
  273. FFAppState().userSessionname,
  274. FFAppState().userSessionid,
  275. FFAppState().userToken,
  276. '',
  277. );
  278. _model.favorieteHorecagelegenheden = _model
  279. .responseFavorieteHoreca!
  280. .toList()
  281. .cast<dynamic>();
  282. safeSetState(() {});
  283. safeSetState(() {});
  284. },
  285. () async {}
  286. ][i]();
  287. },
  288. ),
  289. ),
  290. Expanded(
  291. child: TabBarView(
  292. controller: _model.tabBarController,
  293. children: [
  294. Column(
  295. mainAxisSize: MainAxisSize.max,
  296. children: [
  297. Expanded(
  298. child: Builder(
  299. builder: (context) {
  300. final favorietenAgendaItems =
  301. _model.favorietenAgenda.toList();
  302. _model.debugGeneratorVariables[
  303. 'favorietenAgendaItems${favorietenAgendaItems.length > 100 ? ' (first 100)' : ''}'] =
  304. debugSerializeParam(
  305. favorietenAgendaItems.take(100),
  306. ParamType.JSON,
  307. isList: true,
  308. link:
  309. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=favorieten',
  310. name: 'dynamic',
  311. nullable: false,
  312. );
  313. debugLogWidgetClass(_model);
  314. return MasonryGridView.builder(
  315. gridDelegate:
  316. SliverSimpleGridDelegateWithFixedCrossAxisCount(
  317. crossAxisCount: 2,
  318. ),
  319. crossAxisSpacing: 10.0,
  320. mainAxisSpacing: 10.0,
  321. itemCount: favorietenAgendaItems.length,
  322. itemBuilder: (context,
  323. favorietenAgendaItemsIndex) {
  324. final favorietenAgendaItemsItem =
  325. favorietenAgendaItems[
  326. favorietenAgendaItemsIndex];
  327. return Builder(builder: (_) {
  328. return DebugFlutterFlowModelContext(
  329. rootModel: _model.rootModel,
  330. parentModelCallback: (m) {
  331. _model.uitgaantabelKaartModels[
  332. 'Keyiv6_${favorietenAgendaItemsIndex}_of_${favorietenAgendaItems.length}'] = m;
  333. },
  334. child: UitgaantabelKaartWidget(
  335. key: Key(
  336. 'Keyiv6_${favorietenAgendaItemsIndex}_of_${favorietenAgendaItems.length}'),
  337. logo: getJsonField(
  338. favorietenAgendaItemsItem,
  339. r'''$.logo''',
  340. ),
  341. categorie: getJsonField(
  342. favorietenAgendaItemsItem,
  343. r'''$.categorie''',
  344. ),
  345. titel: getJsonField(
  346. favorietenAgendaItemsItem,
  347. r'''$.titel''',
  348. ),
  349. horecagelegenheid: getJsonField(
  350. favorietenAgendaItemsItem,
  351. r'''$.horecagelegenheid''',
  352. ),
  353. adres: getJsonField(
  354. favorietenAgendaItemsItem,
  355. r'''$.adres''',
  356. ),
  357. plaats: getJsonField(
  358. favorietenAgendaItemsItem,
  359. r'''$.plaats''',
  360. ),
  361. datum: getJsonField(
  362. favorietenAgendaItemsItem,
  363. r'''$.datum''',
  364. ),
  365. inhoud: null,
  366. nid: getJsonField(
  367. favorietenAgendaItemsItem,
  368. r'''$.nid''',
  369. ),
  370. horecagelegenheidNid:
  371. getJsonField(
  372. favorietenAgendaItemsItem,
  373. r'''$.horecagelegenheidNid''',
  374. ),
  375. ),
  376. );
  377. });
  378. },
  379. );
  380. },
  381. ),
  382. ),
  383. Text(
  384. FFLocalizations.of(context).getText(
  385. 'wmho8j7h' /* Hello World */,
  386. ),
  387. style: FlutterFlowTheme.of(context)
  388. .bodyMedium
  389. .override(
  390. font: GoogleFonts.roboto(
  391. fontWeight: FlutterFlowTheme.of(context)
  392. .bodyMedium
  393. .fontWeight,
  394. fontStyle: FlutterFlowTheme.of(context)
  395. .bodyMedium
  396. .fontStyle,
  397. ),
  398. letterSpacing: 0.0,
  399. fontWeight: FlutterFlowTheme.of(context)
  400. .bodyMedium
  401. .fontWeight,
  402. fontStyle: FlutterFlowTheme.of(context)
  403. .bodyMedium
  404. .fontStyle,
  405. ),
  406. ),
  407. ],
  408. ),
  409. Column(
  410. mainAxisSize: MainAxisSize.max,
  411. children: [
  412. Padding(
  413. padding: EdgeInsetsDirectional.fromSTEB(
  414. 16.0, 0.0, 16.0, 0.0),
  415. child: Text(
  416. FFLocalizations.of(context).getText(
  417. 'o7pt2vls' /* De gemeentes die je hebt gemar... */,
  418. ),
  419. style: FlutterFlowTheme.of(context)
  420. .bodyMedium
  421. .override(
  422. font: GoogleFonts.roboto(
  423. fontWeight:
  424. FlutterFlowTheme.of(context)
  425. .bodyMedium
  426. .fontWeight,
  427. fontStyle:
  428. FlutterFlowTheme.of(context)
  429. .bodyMedium
  430. .fontStyle,
  431. ),
  432. letterSpacing: 0.0,
  433. fontWeight: FlutterFlowTheme.of(context)
  434. .bodyMedium
  435. .fontWeight,
  436. fontStyle: FlutterFlowTheme.of(context)
  437. .bodyMedium
  438. .fontStyle,
  439. ),
  440. ),
  441. ),
  442. Expanded(
  443. child: Flex(
  444. direction: Axis.vertical,
  445. mainAxisSize: MainAxisSize.max,
  446. children: [
  447. Builder(
  448. builder: (context) {
  449. final favorieteGemeenteItem =
  450. _model.favorietenGemeenten.toList();
  451. _model.debugGeneratorVariables[
  452. 'favorieteGemeenteItem${favorieteGemeenteItem.length > 100 ? ' (first 100)' : ''}'] =
  453. debugSerializeParam(
  454. favorieteGemeenteItem.take(100),
  455. ParamType.JSON,
  456. isList: true,
  457. link:
  458. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=favorieten',
  459. name: 'dynamic',
  460. nullable: false,
  461. );
  462. debugLogWidgetClass(_model);
  463. return ListView.builder(
  464. padding: EdgeInsets.zero,
  465. shrinkWrap: true,
  466. scrollDirection: Axis.vertical,
  467. itemCount:
  468. favorieteGemeenteItem.length,
  469. itemBuilder: (context,
  470. favorieteGemeenteItemIndex) {
  471. final favorieteGemeenteItemItem =
  472. favorieteGemeenteItem[
  473. favorieteGemeenteItemIndex];
  474. return InkWell(
  475. splashColor: Colors.transparent,
  476. focusColor: Colors.transparent,
  477. hoverColor: Colors.transparent,
  478. highlightColor:
  479. Colors.transparent,
  480. onTap: () async {
  481. FFAppState().gemeenteSelectId =
  482. getJsonField(
  483. favorieteGemeenteItemItem,
  484. r'''$.nid''',
  485. ).toString();
  486. FFAppState()
  487. .gemeenteSelectNaam =
  488. getJsonField(
  489. favorieteGemeenteItemItem,
  490. r'''$.titel''',
  491. ).toString();
  492. FFAppState().provincieSelectId =
  493. getJsonField(
  494. favorieteGemeenteItemItem,
  495. r'''$.parent_nid''',
  496. ).toString();
  497. FFAppState()
  498. .provincieSelectName =
  499. getJsonField(
  500. favorieteGemeenteItemItem,
  501. r'''$.parent_nid''',
  502. ).toString();
  503. safeSetState(() {});
  504. context.pushNamed(
  505. HomeWidget.routeName);
  506. },
  507. child: Material(
  508. color: Colors.transparent,
  509. child: ListTile(
  510. title: Text(
  511. getJsonField(
  512. favorieteGemeenteItemItem,
  513. r'''$.titel''',
  514. ).toString(),
  515. style: FlutterFlowTheme.of(
  516. context)
  517. .titleLarge
  518. .override(
  519. font: GoogleFonts
  520. .roboto(
  521. fontWeight:
  522. FlutterFlowTheme.of(
  523. context)
  524. .titleLarge
  525. .fontWeight,
  526. fontStyle:
  527. FlutterFlowTheme.of(
  528. context)
  529. .titleLarge
  530. .fontStyle,
  531. ),
  532. letterSpacing: 0.0,
  533. fontWeight:
  534. FlutterFlowTheme.of(
  535. context)
  536. .titleLarge
  537. .fontWeight,
  538. fontStyle:
  539. FlutterFlowTheme.of(
  540. context)
  541. .titleLarge
  542. .fontStyle,
  543. ),
  544. ),
  545. subtitle: Text(
  546. FFLocalizations.of(context)
  547. .getText(
  548. 'jm4s7cdn' /* Stel in als standaard */,
  549. ),
  550. style: FlutterFlowTheme.of(
  551. context)
  552. .labelMedium
  553. .override(
  554. font: GoogleFonts
  555. .roboto(
  556. fontWeight:
  557. FlutterFlowTheme.of(
  558. context)
  559. .labelMedium
  560. .fontWeight,
  561. fontStyle:
  562. FlutterFlowTheme.of(
  563. context)
  564. .labelMedium
  565. .fontStyle,
  566. ),
  567. letterSpacing: 0.0,
  568. fontWeight:
  569. FlutterFlowTheme.of(
  570. context)
  571. .labelMedium
  572. .fontWeight,
  573. fontStyle:
  574. FlutterFlowTheme.of(
  575. context)
  576. .labelMedium
  577. .fontStyle,
  578. ),
  579. ),
  580. trailing: Icon(
  581. Icons
  582. .arrow_forward_ios_rounded,
  583. color: FlutterFlowTheme.of(
  584. context)
  585. .secondaryText,
  586. size: 24.0,
  587. ),
  588. tileColor:
  589. FlutterFlowTheme.of(
  590. context)
  591. .secondaryBackground,
  592. dense: false,
  593. contentPadding:
  594. EdgeInsetsDirectional
  595. .fromSTEB(12.0, 0.0,
  596. 12.0, 0.0),
  597. shape: RoundedRectangleBorder(
  598. borderRadius:
  599. BorderRadius.circular(
  600. 8.0),
  601. ),
  602. ),
  603. ),
  604. );
  605. },
  606. );
  607. },
  608. ),
  609. ],
  610. ),
  611. ),
  612. ],
  613. ),
  614. Column(
  615. mainAxisSize: MainAxisSize.max,
  616. children: [
  617. Expanded(
  618. child: Builder(
  619. builder: (context) {
  620. final favorieteHorecagelegenheid = _model
  621. .favorieteHorecagelegenheden
  622. .toList();
  623. _model.debugGeneratorVariables[
  624. 'favorieteHorecagelegenheid${favorieteHorecagelegenheid.length > 100 ? ' (first 100)' : ''}'] =
  625. debugSerializeParam(
  626. favorieteHorecagelegenheid.take(100),
  627. ParamType.JSON,
  628. isList: true,
  629. link:
  630. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=favorieten',
  631. name: 'dynamic',
  632. nullable: false,
  633. );
  634. debugLogWidgetClass(_model);
  635. return MasonryGridView.builder(
  636. gridDelegate:
  637. SliverSimpleGridDelegateWithFixedCrossAxisCount(
  638. crossAxisCount: 2,
  639. ),
  640. crossAxisSpacing: 10.0,
  641. mainAxisSpacing: 10.0,
  642. itemCount:
  643. favorieteHorecagelegenheid.length,
  644. itemBuilder: (context,
  645. favorieteHorecagelegenheidIndex) {
  646. final favorieteHorecagelegenheidItem =
  647. favorieteHorecagelegenheid[
  648. favorieteHorecagelegenheidIndex];
  649. return InkWell(
  650. splashColor: Colors.transparent,
  651. focusColor: Colors.transparent,
  652. hoverColor: Colors.transparent,
  653. highlightColor: Colors.transparent,
  654. onTap: () async {
  655. context.pushNamed(
  656. HorecagelegenheidCurrentWidget
  657. .routeName,
  658. queryParameters: {
  659. 'nid': serializeParam(
  660. getJsonField(
  661. favorieteHorecagelegenheidItem,
  662. r'''$.nid''',
  663. ).toString(),
  664. ParamType.String,
  665. ),
  666. }.withoutNulls,
  667. );
  668. },
  669. child: Builder(builder: (_) {
  670. return DebugFlutterFlowModelContext(
  671. rootModel: _model.rootModel,
  672. parentModelCallback: (m) {
  673. _model.horecagelegenheidoverzichtKaartModels[
  674. 'Keycet_${favorieteHorecagelegenheidIndex}_of_${favorieteHorecagelegenheid.length}'] = m;
  675. },
  676. child:
  677. HorecagelegenheidoverzichtKaartWidget(
  678. key: Key(
  679. 'Keycet_${favorieteHorecagelegenheidIndex}_of_${favorieteHorecagelegenheid.length}'),
  680. titel: getJsonField(
  681. favorieteHorecagelegenheidItem,
  682. r'''$.titel''',
  683. ).toString(),
  684. logo: getJsonField(
  685. favorieteHorecagelegenheidItem,
  686. r'''$.logo''',
  687. ).toString(),
  688. nid: getJsonField(
  689. favorieteHorecagelegenheidItem,
  690. r'''$.nid''',
  691. ).toString(),
  692. adres: getJsonField(
  693. favorieteHorecagelegenheidItem,
  694. r'''$.adres''',
  695. ).toString(),
  696. plaats: getJsonField(
  697. favorieteHorecagelegenheidItem,
  698. r'''$.plaats''',
  699. ).toString(),
  700. categorie: (getJsonField(
  701. favorieteHorecagelegenheidItem,
  702. r'''$.categorie''',
  703. true,
  704. ) as List?)
  705. ?.map<String>(
  706. (e) => e.toString())
  707. .toList()
  708. .cast<String>(),
  709. ),
  710. );
  711. }),
  712. );
  713. },
  714. );
  715. },
  716. ),
  717. ),
  718. ],
  719. ),
  720. Column(
  721. mainAxisSize: MainAxisSize.max,
  722. children: [
  723. InkWell(
  724. splashColor: Colors.transparent,
  725. focusColor: Colors.transparent,
  726. hoverColor: Colors.transparent,
  727. highlightColor: Colors.transparent,
  728. onTap: () async {
  729. FFAppState().deleteUserToken();
  730. FFAppState().userToken = '';
  731. FFAppState().deleteUserSessionid();
  732. FFAppState().userSessionid = '';
  733. FFAppState().deleteUserSessionname();
  734. FFAppState().userSessionname = '';
  735. FFAppState().deleteUserName();
  736. FFAppState().userName = '';
  737. FFAppState().deleteUserUid();
  738. FFAppState().userUid = 0;
  739. FFAppState().deleteUserMail();
  740. FFAppState().userMail = '';
  741. safeSetState(() {});
  742. context.goNamed(LoginWidget.routeName);
  743. },
  744. child: Material(
  745. color: Colors.transparent,
  746. child: ListTile(
  747. title: Text(
  748. FFLocalizations.of(context).getText(
  749. '275gmehq' /* Uitloggen */,
  750. ),
  751. style: FlutterFlowTheme.of(context)
  752. .titleLarge
  753. .override(
  754. font: GoogleFonts.roboto(
  755. fontWeight:
  756. FlutterFlowTheme.of(context)
  757. .titleLarge
  758. .fontWeight,
  759. fontStyle:
  760. FlutterFlowTheme.of(context)
  761. .titleLarge
  762. .fontStyle,
  763. ),
  764. letterSpacing: 0.0,
  765. fontWeight:
  766. FlutterFlowTheme.of(context)
  767. .titleLarge
  768. .fontWeight,
  769. fontStyle:
  770. FlutterFlowTheme.of(context)
  771. .titleLarge
  772. .fontStyle,
  773. ),
  774. ),
  775. trailing: Icon(
  776. Icons.arrow_forward_ios_rounded,
  777. color: FlutterFlowTheme.of(context)
  778. .secondaryText,
  779. size: 24.0,
  780. ),
  781. tileColor: FlutterFlowTheme.of(context)
  782. .secondaryBackground,
  783. dense: false,
  784. contentPadding:
  785. EdgeInsetsDirectional.fromSTEB(
  786. 12.0, 0.0, 12.0, 0.0),
  787. shape: RoundedRectangleBorder(
  788. borderRadius: BorderRadius.circular(8.0),
  789. ),
  790. ),
  791. ),
  792. ),
  793. InkWell(
  794. splashColor: Colors.transparent,
  795. focusColor: Colors.transparent,
  796. hoverColor: Colors.transparent,
  797. highlightColor: Colors.transparent,
  798. onTap: () async {
  799. context
  800. .pushNamed(MijnProfielWidget.routeName);
  801. },
  802. child: Material(
  803. color: Colors.transparent,
  804. child: ListTile(
  805. title: Text(
  806. FFLocalizations.of(context).getText(
  807. 'pdzmzb1p' /* Mijn profiel */,
  808. ),
  809. style: FlutterFlowTheme.of(context)
  810. .titleLarge
  811. .override(
  812. font: GoogleFonts.roboto(
  813. fontWeight:
  814. FlutterFlowTheme.of(context)
  815. .titleLarge
  816. .fontWeight,
  817. fontStyle:
  818. FlutterFlowTheme.of(context)
  819. .titleLarge
  820. .fontStyle,
  821. ),
  822. letterSpacing: 0.0,
  823. fontWeight:
  824. FlutterFlowTheme.of(context)
  825. .titleLarge
  826. .fontWeight,
  827. fontStyle:
  828. FlutterFlowTheme.of(context)
  829. .titleLarge
  830. .fontStyle,
  831. ),
  832. ),
  833. trailing: Icon(
  834. Icons.arrow_forward_ios_rounded,
  835. color: FlutterFlowTheme.of(context)
  836. .secondaryText,
  837. size: 24.0,
  838. ),
  839. tileColor: FlutterFlowTheme.of(context)
  840. .secondaryBackground,
  841. dense: false,
  842. contentPadding:
  843. EdgeInsetsDirectional.fromSTEB(
  844. 12.0, 0.0, 12.0, 0.0),
  845. shape: RoundedRectangleBorder(
  846. borderRadius: BorderRadius.circular(8.0),
  847. ),
  848. ),
  849. ),
  850. ),
  851. InkWell(
  852. splashColor: Colors.transparent,
  853. focusColor: Colors.transparent,
  854. hoverColor: Colors.transparent,
  855. highlightColor: Colors.transparent,
  856. onTap: () async {
  857. context.pushNamed(
  858. WachtwoordVergetenWidget.routeName);
  859. },
  860. child: Material(
  861. color: Colors.transparent,
  862. child: ListTile(
  863. title: Text(
  864. FFLocalizations.of(context).getText(
  865. 'ogz7q3xk' /* Wachtwoord wijzigen */,
  866. ),
  867. style: FlutterFlowTheme.of(context)
  868. .titleLarge
  869. .override(
  870. font: GoogleFonts.roboto(
  871. fontWeight:
  872. FlutterFlowTheme.of(context)
  873. .titleLarge
  874. .fontWeight,
  875. fontStyle:
  876. FlutterFlowTheme.of(context)
  877. .titleLarge
  878. .fontStyle,
  879. ),
  880. letterSpacing: 0.0,
  881. fontWeight:
  882. FlutterFlowTheme.of(context)
  883. .titleLarge
  884. .fontWeight,
  885. fontStyle:
  886. FlutterFlowTheme.of(context)
  887. .titleLarge
  888. .fontStyle,
  889. ),
  890. ),
  891. trailing: Icon(
  892. Icons.arrow_forward_ios_rounded,
  893. color: FlutterFlowTheme.of(context)
  894. .secondaryText,
  895. size: 24.0,
  896. ),
  897. tileColor: FlutterFlowTheme.of(context)
  898. .secondaryBackground,
  899. dense: false,
  900. contentPadding:
  901. EdgeInsetsDirectional.fromSTEB(
  902. 12.0, 0.0, 12.0, 0.0),
  903. shape: RoundedRectangleBorder(
  904. borderRadius: BorderRadius.circular(8.0),
  905. ),
  906. ),
  907. ),
  908. ),
  909. InkWell(
  910. splashColor: Colors.transparent,
  911. focusColor: Colors.transparent,
  912. hoverColor: Colors.transparent,
  913. highlightColor: Colors.transparent,
  914. onTap: () async {
  915. unawaited(
  916. () async {
  917. await launchURL(
  918. 'https://uitgaanskrant.com/nl/account-verwijderen');
  919. }(),
  920. );
  921. },
  922. child: Material(
  923. color: Colors.transparent,
  924. child: ListTile(
  925. title: Text(
  926. FFLocalizations.of(context).getText(
  927. 'i31b4itp' /* Account verwijderen */,
  928. ),
  929. style: FlutterFlowTheme.of(context)
  930. .titleLarge
  931. .override(
  932. font: GoogleFonts.roboto(
  933. fontWeight:
  934. FlutterFlowTheme.of(context)
  935. .titleLarge
  936. .fontWeight,
  937. fontStyle:
  938. FlutterFlowTheme.of(context)
  939. .titleLarge
  940. .fontStyle,
  941. ),
  942. letterSpacing: 0.0,
  943. fontWeight:
  944. FlutterFlowTheme.of(context)
  945. .titleLarge
  946. .fontWeight,
  947. fontStyle:
  948. FlutterFlowTheme.of(context)
  949. .titleLarge
  950. .fontStyle,
  951. ),
  952. ),
  953. trailing: Icon(
  954. Icons.arrow_forward_ios_rounded,
  955. color: FlutterFlowTheme.of(context)
  956. .secondaryText,
  957. size: 24.0,
  958. ),
  959. tileColor: FlutterFlowTheme.of(context)
  960. .secondaryBackground,
  961. dense: false,
  962. contentPadding:
  963. EdgeInsetsDirectional.fromSTEB(
  964. 12.0, 0.0, 12.0, 0.0),
  965. shape: RoundedRectangleBorder(
  966. borderRadius: BorderRadius.circular(8.0),
  967. ),
  968. ),
  969. ),
  970. ),
  971. FFButtonWidget(
  972. onPressed: () async {
  973. context.pushNamed(
  974. StadsactiviteitAanmakenWidget.routeName);
  975. },
  976. text: FFLocalizations.of(context).getText(
  977. 'fbl4ak2y' /* stadsactiviteit aanmaken */,
  978. ),
  979. options: FFButtonOptions(
  980. height: 40.0,
  981. padding: EdgeInsetsDirectional.fromSTEB(
  982. 16.0, 0.0, 16.0, 0.0),
  983. iconPadding: EdgeInsetsDirectional.fromSTEB(
  984. 0.0, 0.0, 0.0, 0.0),
  985. color: FlutterFlowTheme.of(context).primary,
  986. textStyle: FlutterFlowTheme.of(context)
  987. .titleSmall
  988. .override(
  989. font: GoogleFonts.roboto(
  990. fontWeight:
  991. FlutterFlowTheme.of(context)
  992. .titleSmall
  993. .fontWeight,
  994. fontStyle:
  995. FlutterFlowTheme.of(context)
  996. .titleSmall
  997. .fontStyle,
  998. ),
  999. color: Colors.white,
  1000. letterSpacing: 0.0,
  1001. fontWeight: FlutterFlowTheme.of(context)
  1002. .titleSmall
  1003. .fontWeight,
  1004. fontStyle: FlutterFlowTheme.of(context)
  1005. .titleSmall
  1006. .fontStyle,
  1007. ),
  1008. elevation: 0.0,
  1009. borderRadius: BorderRadius.circular(8.0),
  1010. ),
  1011. ),
  1012. Text(
  1013. valueOrDefault<String>(
  1014. functions.buildStempel(),
  1015. 'buildStempel',
  1016. ),
  1017. style: FlutterFlowTheme.of(context)
  1018. .bodyMedium
  1019. .override(
  1020. font: GoogleFonts.roboto(
  1021. fontWeight: FlutterFlowTheme.of(context)
  1022. .bodyMedium
  1023. .fontWeight,
  1024. fontStyle: FlutterFlowTheme.of(context)
  1025. .bodyMedium
  1026. .fontStyle,
  1027. ),
  1028. letterSpacing: 0.0,
  1029. fontWeight: FlutterFlowTheme.of(context)
  1030. .bodyMedium
  1031. .fontWeight,
  1032. fontStyle: FlutterFlowTheme.of(context)
  1033. .bodyMedium
  1034. .fontStyle,
  1035. ),
  1036. ),
  1037. ],
  1038. ),
  1039. ],
  1040. ),
  1041. ),
  1042. ],
  1043. ),
  1044. ),
  1045. ],
  1046. ),
  1047. ),
  1048. ),
  1049. );
  1050. }
  1051. }