favorieten_widget.dart 46 KB

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