favorieten_widget.dart 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814
  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:ui';
  9. import '/custom_code/actions/index.dart' as actions;
  10. import '/index.dart';
  11. import 'package:flutter/material.dart';
  12. import 'package:flutter/scheduler.dart';
  13. import 'package:flutter_spinkit/flutter_spinkit.dart';
  14. import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
  15. import 'package:google_fonts/google_fonts.dart';
  16. import 'package:provider/provider.dart';
  17. import 'favorieten_model.dart';
  18. export 'favorieten_model.dart';
  19. class FavorietenWidget extends StatefulWidget {
  20. const FavorietenWidget({super.key});
  21. static String routeName = 'favorieten';
  22. static String routePath = '/favorieten';
  23. @override
  24. State<FavorietenWidget> createState() => _FavorietenWidgetState();
  25. }
  26. class _FavorietenWidgetState extends State<FavorietenWidget>
  27. with TickerProviderStateMixin, RouteAware {
  28. late FavorietenModel _model;
  29. final scaffoldKey = GlobalKey<ScaffoldState>();
  30. @override
  31. void initState() {
  32. super.initState();
  33. _model = createModel(context, () => FavorietenModel());
  34. // On page load action.
  35. SchedulerBinding.instance.addPostFrameCallback((_) async {
  36. _model.responseActionDrupalRequestPageLoad = await actions.drupalRequest(
  37. 'GET',
  38. 'https://uitgaanskrant.com/nl/flutterdrup/favorieten_agenda.json',
  39. FFAppState().userSessionname,
  40. FFAppState().userSessionid,
  41. FFAppState().userToken,
  42. '',
  43. );
  44. _model.favorietenAgenda =
  45. _model.responseActionDrupalRequestPageLoad!.toList().cast<dynamic>();
  46. safeSetState(() {});
  47. });
  48. _model.tabBarController = TabController(
  49. vsync: this,
  50. length: 4,
  51. initialIndex: 0,
  52. )
  53. ..addListener(() => safeSetState(() {}))
  54. ..addListener(() {
  55. debugLogWidgetClass(_model);
  56. });
  57. }
  58. @override
  59. void dispose() {
  60. routeObserver.unsubscribe(this);
  61. _model.dispose();
  62. super.dispose();
  63. }
  64. @override
  65. void didUpdateWidget(FavorietenWidget oldWidget) {
  66. super.didUpdateWidget(oldWidget);
  67. _model.widget = widget;
  68. }
  69. @override
  70. void didChangeDependencies() {
  71. super.didChangeDependencies();
  72. final route = DebugModalRoute.of(context);
  73. if (route != null) {
  74. routeObserver.subscribe(this, route);
  75. }
  76. debugLogGlobalProperty(context);
  77. }
  78. @override
  79. void didPopNext() {
  80. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  81. setState(() => _model.isRouteVisible = true);
  82. debugLogWidgetClass(_model);
  83. }
  84. }
  85. @override
  86. void didPush() {
  87. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  88. setState(() => _model.isRouteVisible = true);
  89. debugLogWidgetClass(_model);
  90. }
  91. }
  92. @override
  93. void didPop() {
  94. _model.isRouteVisible = false;
  95. }
  96. @override
  97. void didPushNext() {
  98. _model.isRouteVisible = false;
  99. }
  100. @override
  101. Widget build(BuildContext context) {
  102. DebugFlutterFlowModelContext.maybeOf(context)
  103. ?.parentModelCallback
  104. ?.call(_model);
  105. context.watch<FFAppState>();
  106. _model.uitgaantabelKaartModels.clear();
  107. _model.horecagelegenheidoverzichtKaartModels.clear();
  108. return GestureDetector(
  109. onTap: () {
  110. FocusScope.of(context).unfocus();
  111. FocusManager.instance.primaryFocus?.unfocus();
  112. },
  113. child: Scaffold(
  114. key: scaffoldKey,
  115. backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
  116. drawer: Drawer(
  117. elevation: 16.0,
  118. child: wrapWithModel(
  119. model: _model.drawerComponentModel,
  120. updateCallback: () => safeSetState(() {}),
  121. child: Builder(builder: (_) {
  122. return DebugFlutterFlowModelContext(
  123. rootModel: _model.rootModel,
  124. child: DrawerComponentWidget(),
  125. );
  126. }),
  127. ),
  128. ),
  129. appBar: PreferredSize(
  130. preferredSize: Size.fromHeight(80.0),
  131. child: AppBar(
  132. backgroundColor: FlutterFlowTheme.of(context).info,
  133. automaticallyImplyLeading: false,
  134. actions: [],
  135. flexibleSpace: FlexibleSpaceBar(
  136. title: 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. elevation: 0.0,
  152. ),
  153. ),
  154. body: SafeArea(
  155. top: true,
  156. child: Column(
  157. mainAxisSize: MainAxisSize.max,
  158. children: [
  159. Expanded(
  160. child: Column(
  161. children: [
  162. Align(
  163. alignment: Alignment(0.0, 0),
  164. child: TabBar(
  165. isScrollable: true,
  166. tabAlignment: TabAlignment.center,
  167. labelColor: FlutterFlowTheme.of(context).primaryText,
  168. unselectedLabelColor:
  169. FlutterFlowTheme.of(context).secondaryText,
  170. labelStyle:
  171. FlutterFlowTheme.of(context).titleMedium.override(
  172. font: GoogleFonts.interTight(
  173. fontWeight: FlutterFlowTheme.of(context)
  174. .titleMedium
  175. .fontWeight,
  176. fontStyle: FlutterFlowTheme.of(context)
  177. .titleMedium
  178. .fontStyle,
  179. ),
  180. letterSpacing: 0.0,
  181. fontWeight: FlutterFlowTheme.of(context)
  182. .titleMedium
  183. .fontWeight,
  184. fontStyle: FlutterFlowTheme.of(context)
  185. .titleMedium
  186. .fontStyle,
  187. ),
  188. unselectedLabelStyle:
  189. FlutterFlowTheme.of(context).titleMedium.override(
  190. font: GoogleFonts.interTight(
  191. fontWeight: FlutterFlowTheme.of(context)
  192. .titleMedium
  193. .fontWeight,
  194. fontStyle: FlutterFlowTheme.of(context)
  195. .titleMedium
  196. .fontStyle,
  197. ),
  198. letterSpacing: 0.0,
  199. fontWeight: FlutterFlowTheme.of(context)
  200. .titleMedium
  201. .fontWeight,
  202. fontStyle: FlutterFlowTheme.of(context)
  203. .titleMedium
  204. .fontStyle,
  205. ),
  206. indicatorColor: FlutterFlowTheme.of(context).primary,
  207. tabs: [
  208. Tab(
  209. text: FFLocalizations.of(context).getText(
  210. 'txq7zl0f' /* Persoonlijke agenda */,
  211. ),
  212. ),
  213. Tab(
  214. text: FFLocalizations.of(context).getText(
  215. '9wq117bv' /* Favoriete gemeenten */,
  216. ),
  217. ),
  218. Tab(
  219. text: FFLocalizations.of(context).getText(
  220. 'ygk8aifq' /* Favoriete Gelegenheden */,
  221. ),
  222. ),
  223. Tab(
  224. text: FFLocalizations.of(context).getText(
  225. 'jwojezxv' /* Gebruiker */,
  226. ),
  227. ),
  228. ],
  229. controller: _model.tabBarController,
  230. onTap: (i) async {
  231. [
  232. () async {
  233. _model.responsActionDrupalRequest =
  234. await actions.drupalRequest(
  235. 'GET',
  236. 'https://uitgaanskrant.com/nl/flutterdrup/favorieten_agenda.json',
  237. FFAppState().userSessionname,
  238. FFAppState().userSessionid,
  239. FFAppState().userToken,
  240. '',
  241. );
  242. _model.favorietenAgenda = _model
  243. .responsActionDrupalRequest!
  244. .toList()
  245. .cast<dynamic>();
  246. safeSetState(() {});
  247. safeSetState(() {});
  248. },
  249. () async {
  250. _model.resultFavorietegemeenten =
  251. await actions.drupalRequest(
  252. 'GET',
  253. 'https://uitgaanskrant.com/nl/flutterdrup/favorieten_gemeenten.json',
  254. FFAppState().userSessionname,
  255. FFAppState().userSessionid,
  256. FFAppState().userToken,
  257. '',
  258. );
  259. _model.favorietenGemeenten = _model
  260. .resultFavorietegemeenten!
  261. .toList()
  262. .cast<dynamic>();
  263. safeSetState(() {});
  264. safeSetState(() {});
  265. },
  266. () async {
  267. _model.responseFavorieteHoreca =
  268. await actions.drupalRequest(
  269. 'GET',
  270. 'https://uitgaanskrant.com/nl/flutterdrup/favorieten_horeca.json',
  271. FFAppState().userSessionname,
  272. FFAppState().userSessionid,
  273. FFAppState().userToken,
  274. '',
  275. );
  276. _model.favorieteHorecagelegenheden = _model
  277. .responseFavorieteHoreca!
  278. .toList()
  279. .cast<dynamic>();
  280. safeSetState(() {});
  281. safeSetState(() {});
  282. },
  283. () async {}
  284. ][i]();
  285. },
  286. ),
  287. ),
  288. Expanded(
  289. child: TabBarView(
  290. controller: _model.tabBarController,
  291. children: [
  292. Column(
  293. mainAxisSize: MainAxisSize.max,
  294. children: [
  295. Expanded(
  296. child: Builder(
  297. builder: (context) {
  298. final favorietenAgendaItems =
  299. _model.favorietenAgenda.toList();
  300. _model.debugGeneratorVariables[
  301. 'favorietenAgendaItems${favorietenAgendaItems.length > 100 ? ' (first 100)' : ''}'] =
  302. debugSerializeParam(
  303. favorietenAgendaItems.take(100),
  304. ParamType.JSON,
  305. isList: true,
  306. link:
  307. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=favorieten',
  308. name: 'dynamic',
  309. nullable: false,
  310. );
  311. debugLogWidgetClass(_model);
  312. return MasonryGridView.builder(
  313. gridDelegate:
  314. SliverSimpleGridDelegateWithFixedCrossAxisCount(
  315. crossAxisCount: 2,
  316. ),
  317. crossAxisSpacing: 10.0,
  318. mainAxisSpacing: 10.0,
  319. itemCount: favorietenAgendaItems.length,
  320. itemBuilder: (context,
  321. favorietenAgendaItemsIndex) {
  322. final favorietenAgendaItemsItem =
  323. favorietenAgendaItems[
  324. favorietenAgendaItemsIndex];
  325. return Builder(builder: (_) {
  326. return DebugFlutterFlowModelContext(
  327. rootModel: _model.rootModel,
  328. parentModelCallback: (m) {
  329. _model.uitgaantabelKaartModels[
  330. 'Keyiv6_${favorietenAgendaItemsIndex}_of_${favorietenAgendaItems.length}'] = m;
  331. },
  332. child: UitgaantabelKaartWidget(
  333. key: Key(
  334. 'Keyiv6_${favorietenAgendaItemsIndex}_of_${favorietenAgendaItems.length}'),
  335. logo: getJsonField(
  336. favorietenAgendaItemsItem,
  337. r'''$.logo''',
  338. ),
  339. categorie: getJsonField(
  340. favorietenAgendaItemsItem,
  341. r'''$.categorie''',
  342. ),
  343. titel: getJsonField(
  344. favorietenAgendaItemsItem,
  345. r'''$.titel''',
  346. ),
  347. horecagelegenheid: getJsonField(
  348. favorietenAgendaItemsItem,
  349. r'''$.horecagelegenheid''',
  350. ),
  351. adres: getJsonField(
  352. favorietenAgendaItemsItem,
  353. r'''$.adres''',
  354. ),
  355. plaats: getJsonField(
  356. favorietenAgendaItemsItem,
  357. r'''$.plaats''',
  358. ),
  359. datum: getJsonField(
  360. favorietenAgendaItemsItem,
  361. r'''$.datum''',
  362. ),
  363. inhoud: null,
  364. nid: getJsonField(
  365. favorietenAgendaItemsItem,
  366. r'''$.nid''',
  367. ),
  368. horecagelegenheidNid:
  369. getJsonField(
  370. favorietenAgendaItemsItem,
  371. r'''$.horecagelegenheidNid''',
  372. ),
  373. ),
  374. );
  375. });
  376. },
  377. );
  378. },
  379. ),
  380. ),
  381. ],
  382. ),
  383. Column(
  384. mainAxisSize: MainAxisSize.max,
  385. children: [
  386. Padding(
  387. padding: EdgeInsetsDirectional.fromSTEB(
  388. 16.0, 0.0, 16.0, 0.0),
  389. child: Text(
  390. FFLocalizations.of(context).getText(
  391. 'o7pt2vls' /* De gemeentes die je hebt gemar... */,
  392. ),
  393. style: FlutterFlowTheme.of(context)
  394. .bodyMedium
  395. .override(
  396. font: GoogleFonts.inter(
  397. fontWeight:
  398. FlutterFlowTheme.of(context)
  399. .bodyMedium
  400. .fontWeight,
  401. fontStyle:
  402. FlutterFlowTheme.of(context)
  403. .bodyMedium
  404. .fontStyle,
  405. ),
  406. letterSpacing: 0.0,
  407. fontWeight: FlutterFlowTheme.of(context)
  408. .bodyMedium
  409. .fontWeight,
  410. fontStyle: FlutterFlowTheme.of(context)
  411. .bodyMedium
  412. .fontStyle,
  413. ),
  414. ),
  415. ),
  416. Expanded(
  417. child: Flex(
  418. direction: Axis.vertical,
  419. mainAxisSize: MainAxisSize.max,
  420. children: [
  421. Builder(
  422. builder: (context) {
  423. final favorieteGemeenteItem =
  424. _model.favorietenGemeenten.toList();
  425. _model.debugGeneratorVariables[
  426. 'favorieteGemeenteItem${favorieteGemeenteItem.length > 100 ? ' (first 100)' : ''}'] =
  427. debugSerializeParam(
  428. favorieteGemeenteItem.take(100),
  429. ParamType.JSON,
  430. isList: true,
  431. link:
  432. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=favorieten',
  433. name: 'dynamic',
  434. nullable: false,
  435. );
  436. debugLogWidgetClass(_model);
  437. return ListView.builder(
  438. padding: EdgeInsets.zero,
  439. shrinkWrap: true,
  440. scrollDirection: Axis.vertical,
  441. itemCount:
  442. favorieteGemeenteItem.length,
  443. itemBuilder: (context,
  444. favorieteGemeenteItemIndex) {
  445. final favorieteGemeenteItemItem =
  446. favorieteGemeenteItem[
  447. favorieteGemeenteItemIndex];
  448. return InkWell(
  449. splashColor: Colors.transparent,
  450. focusColor: Colors.transparent,
  451. hoverColor: Colors.transparent,
  452. highlightColor:
  453. Colors.transparent,
  454. onTap: () async {
  455. FFAppState().gemeenteSelectId =
  456. getJsonField(
  457. favorieteGemeenteItemItem,
  458. r'''$.nid''',
  459. ).toString();
  460. FFAppState()
  461. .gemeenteSelectNaam =
  462. getJsonField(
  463. favorieteGemeenteItemItem,
  464. r'''$.titel''',
  465. ).toString();
  466. FFAppState().provincieSelectId =
  467. getJsonField(
  468. favorieteGemeenteItemItem,
  469. r'''$.parent_nid''',
  470. ).toString();
  471. FFAppState()
  472. .provincieSelectName =
  473. getJsonField(
  474. favorieteGemeenteItemItem,
  475. r'''$.parent_nid''',
  476. ).toString();
  477. safeSetState(() {});
  478. context.pushNamed(
  479. HomeWidget.routeName);
  480. },
  481. child: Material(
  482. color: Colors.transparent,
  483. child: ListTile(
  484. title: Text(
  485. getJsonField(
  486. favorieteGemeenteItemItem,
  487. r'''$.titel''',
  488. ).toString(),
  489. style: FlutterFlowTheme.of(
  490. context)
  491. .titleLarge
  492. .override(
  493. font: GoogleFonts
  494. .interTight(
  495. fontWeight:
  496. FlutterFlowTheme.of(
  497. context)
  498. .titleLarge
  499. .fontWeight,
  500. fontStyle:
  501. FlutterFlowTheme.of(
  502. context)
  503. .titleLarge
  504. .fontStyle,
  505. ),
  506. letterSpacing: 0.0,
  507. fontWeight:
  508. FlutterFlowTheme.of(
  509. context)
  510. .titleLarge
  511. .fontWeight,
  512. fontStyle:
  513. FlutterFlowTheme.of(
  514. context)
  515. .titleLarge
  516. .fontStyle,
  517. ),
  518. ),
  519. subtitle: Text(
  520. FFLocalizations.of(context)
  521. .getText(
  522. 'jm4s7cdn' /* Stel in als standaard */,
  523. ),
  524. style: FlutterFlowTheme.of(
  525. context)
  526. .labelMedium
  527. .override(
  528. font:
  529. GoogleFonts.inter(
  530. fontWeight:
  531. FlutterFlowTheme.of(
  532. context)
  533. .labelMedium
  534. .fontWeight,
  535. fontStyle:
  536. FlutterFlowTheme.of(
  537. context)
  538. .labelMedium
  539. .fontStyle,
  540. ),
  541. letterSpacing: 0.0,
  542. fontWeight:
  543. FlutterFlowTheme.of(
  544. context)
  545. .labelMedium
  546. .fontWeight,
  547. fontStyle:
  548. FlutterFlowTheme.of(
  549. context)
  550. .labelMedium
  551. .fontStyle,
  552. ),
  553. ),
  554. trailing: Icon(
  555. Icons
  556. .arrow_forward_ios_rounded,
  557. color: FlutterFlowTheme.of(
  558. context)
  559. .secondaryText,
  560. size: 24.0,
  561. ),
  562. tileColor:
  563. FlutterFlowTheme.of(
  564. context)
  565. .secondaryBackground,
  566. dense: false,
  567. contentPadding:
  568. EdgeInsetsDirectional
  569. .fromSTEB(12.0, 0.0,
  570. 12.0, 0.0),
  571. shape: RoundedRectangleBorder(
  572. borderRadius:
  573. BorderRadius.circular(
  574. 8.0),
  575. ),
  576. ),
  577. ),
  578. );
  579. },
  580. );
  581. },
  582. ),
  583. ],
  584. ),
  585. ),
  586. ],
  587. ),
  588. Column(
  589. mainAxisSize: MainAxisSize.max,
  590. children: [
  591. Expanded(
  592. child: Builder(
  593. builder: (context) {
  594. final favorieteHorecagelegenheid = _model
  595. .favorieteHorecagelegenheden
  596. .toList();
  597. _model.debugGeneratorVariables[
  598. 'favorieteHorecagelegenheid${favorieteHorecagelegenheid.length > 100 ? ' (first 100)' : ''}'] =
  599. debugSerializeParam(
  600. favorieteHorecagelegenheid.take(100),
  601. ParamType.JSON,
  602. isList: true,
  603. link:
  604. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=favorieten',
  605. name: 'dynamic',
  606. nullable: false,
  607. );
  608. debugLogWidgetClass(_model);
  609. return MasonryGridView.builder(
  610. gridDelegate:
  611. SliverSimpleGridDelegateWithFixedCrossAxisCount(
  612. crossAxisCount: 2,
  613. ),
  614. crossAxisSpacing: 10.0,
  615. mainAxisSpacing: 10.0,
  616. itemCount:
  617. favorieteHorecagelegenheid.length,
  618. itemBuilder: (context,
  619. favorieteHorecagelegenheidIndex) {
  620. final favorieteHorecagelegenheidItem =
  621. favorieteHorecagelegenheid[
  622. favorieteHorecagelegenheidIndex];
  623. return InkWell(
  624. splashColor: Colors.transparent,
  625. focusColor: Colors.transparent,
  626. hoverColor: Colors.transparent,
  627. highlightColor: Colors.transparent,
  628. onTap: () async {
  629. context.pushNamed(
  630. HorecagelegenheidCurrentWidget
  631. .routeName,
  632. queryParameters: {
  633. 'nid': serializeParam(
  634. getJsonField(
  635. favorieteHorecagelegenheidItem,
  636. r'''$.nid''',
  637. ).toString(),
  638. ParamType.String,
  639. ),
  640. }.withoutNulls,
  641. );
  642. },
  643. child: Builder(builder: (_) {
  644. return DebugFlutterFlowModelContext(
  645. rootModel: _model.rootModel,
  646. parentModelCallback: (m) {
  647. _model.horecagelegenheidoverzichtKaartModels[
  648. 'Keycet_${favorieteHorecagelegenheidIndex}_of_${favorieteHorecagelegenheid.length}'] = m;
  649. },
  650. child:
  651. HorecagelegenheidoverzichtKaartWidget(
  652. key: Key(
  653. 'Keycet_${favorieteHorecagelegenheidIndex}_of_${favorieteHorecagelegenheid.length}'),
  654. titel: getJsonField(
  655. favorieteHorecagelegenheidItem,
  656. r'''$.titel''',
  657. ).toString(),
  658. logo: getJsonField(
  659. favorieteHorecagelegenheidItem,
  660. r'''$.logo''',
  661. ).toString(),
  662. nid: getJsonField(
  663. favorieteHorecagelegenheidItem,
  664. r'''$.nid''',
  665. ).toString(),
  666. adres: getJsonField(
  667. favorieteHorecagelegenheidItem,
  668. r'''$.adres''',
  669. ).toString(),
  670. plaats: getJsonField(
  671. favorieteHorecagelegenheidItem,
  672. r'''$.plaats''',
  673. ).toString(),
  674. categorie: (getJsonField(
  675. favorieteHorecagelegenheidItem,
  676. r'''$.categorie''',
  677. true,
  678. ) as List?)
  679. ?.map<String>(
  680. (e) => e.toString())
  681. .toList()
  682. .cast<String>(),
  683. ),
  684. );
  685. }),
  686. );
  687. },
  688. );
  689. },
  690. ),
  691. ),
  692. ],
  693. ),
  694. Column(
  695. mainAxisSize: MainAxisSize.max,
  696. children: [
  697. InkWell(
  698. splashColor: Colors.transparent,
  699. focusColor: Colors.transparent,
  700. hoverColor: Colors.transparent,
  701. highlightColor: Colors.transparent,
  702. onTap: () async {
  703. FFAppState().deleteUserToken();
  704. FFAppState().userToken = '';
  705. FFAppState().deleteUserSessionid();
  706. FFAppState().userSessionid = '';
  707. FFAppState().deleteUserSessionname();
  708. FFAppState().userSessionname = '';
  709. FFAppState().deleteUserName();
  710. FFAppState().userName = '';
  711. FFAppState().deleteUserUid();
  712. FFAppState().userUid = 0;
  713. FFAppState().deleteUserMail();
  714. FFAppState().userMail = '';
  715. safeSetState(() {});
  716. context.goNamed(LoginWidget.routeName);
  717. },
  718. child: Material(
  719. color: Colors.transparent,
  720. child: ListTile(
  721. title: Text(
  722. FFLocalizations.of(context).getText(
  723. '275gmehq' /* Uitloggen */,
  724. ),
  725. style: FlutterFlowTheme.of(context)
  726. .titleLarge
  727. .override(
  728. font: GoogleFonts.interTight(
  729. fontWeight:
  730. FlutterFlowTheme.of(context)
  731. .titleLarge
  732. .fontWeight,
  733. fontStyle:
  734. FlutterFlowTheme.of(context)
  735. .titleLarge
  736. .fontStyle,
  737. ),
  738. letterSpacing: 0.0,
  739. fontWeight:
  740. FlutterFlowTheme.of(context)
  741. .titleLarge
  742. .fontWeight,
  743. fontStyle:
  744. FlutterFlowTheme.of(context)
  745. .titleLarge
  746. .fontStyle,
  747. ),
  748. ),
  749. trailing: Icon(
  750. Icons.arrow_forward_ios_rounded,
  751. color: FlutterFlowTheme.of(context)
  752. .secondaryText,
  753. size: 24.0,
  754. ),
  755. tileColor: FlutterFlowTheme.of(context)
  756. .secondaryBackground,
  757. dense: false,
  758. contentPadding:
  759. EdgeInsetsDirectional.fromSTEB(
  760. 12.0, 0.0, 12.0, 0.0),
  761. shape: RoundedRectangleBorder(
  762. borderRadius: BorderRadius.circular(8.0),
  763. ),
  764. ),
  765. ),
  766. ),
  767. ],
  768. ),
  769. ],
  770. ),
  771. ),
  772. ],
  773. ),
  774. ),
  775. ],
  776. ),
  777. ),
  778. ),
  779. );
  780. }
  781. }