horecagelegenheden_overzicht_widget.dart 81 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446
  1. import '/backend/api_requests/api_calls.dart';
  2. import '/flutter_flow/flutter_flow_icon_button.dart';
  3. import '/flutter_flow/flutter_flow_theme.dart';
  4. import '/flutter_flow/flutter_flow_util.dart';
  5. import '/flutter_flow/flutter_flow_widgets.dart';
  6. import '/horecagelegenhedenoverzicht/horecagelegenheidoverzicht_kaart/horecagelegenheidoverzicht_kaart_widget.dart';
  7. import '/shared/drawer_component/drawer_component_widget.dart';
  8. import 'dart:ui';
  9. import '/index.dart';
  10. import 'package:flutter/material.dart';
  11. import 'package:flutter_spinkit/flutter_spinkit.dart';
  12. import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
  13. import 'package:google_fonts/google_fonts.dart';
  14. import 'package:provider/provider.dart';
  15. import 'horecagelegenheden_overzicht_model.dart';
  16. export 'horecagelegenheden_overzicht_model.dart';
  17. class HorecagelegenhedenOverzichtWidget extends StatefulWidget {
  18. const HorecagelegenhedenOverzichtWidget({
  19. super.key,
  20. required this.plaats,
  21. });
  22. final String? plaats;
  23. static String routeName = 'HorecagelegenhedenOverzicht';
  24. static String routePath = '/horecagelegenhedenOverzicht';
  25. @override
  26. State<HorecagelegenhedenOverzichtWidget> createState() =>
  27. _HorecagelegenhedenOverzichtWidgetState();
  28. }
  29. class _HorecagelegenhedenOverzichtWidgetState
  30. extends State<HorecagelegenhedenOverzichtWidget>
  31. with TickerProviderStateMixin, RouteAware {
  32. late HorecagelegenhedenOverzichtModel _model;
  33. final scaffoldKey = GlobalKey<ScaffoldState>();
  34. @override
  35. void initState() {
  36. super.initState();
  37. _model = createModel(context, () => HorecagelegenhedenOverzichtModel());
  38. _model.tabBarController = TabController(
  39. vsync: this,
  40. length: 6,
  41. initialIndex: 0,
  42. )
  43. ..addListener(() => safeSetState(() {}))
  44. ..addListener(() {
  45. debugLogWidgetClass(_model);
  46. });
  47. }
  48. @override
  49. void dispose() {
  50. routeObserver.unsubscribe(this);
  51. _model.dispose();
  52. super.dispose();
  53. }
  54. @override
  55. void didUpdateWidget(HorecagelegenhedenOverzichtWidget oldWidget) {
  56. super.didUpdateWidget(oldWidget);
  57. _model.widget = widget;
  58. }
  59. @override
  60. void didChangeDependencies() {
  61. super.didChangeDependencies();
  62. final route = DebugModalRoute.of(context);
  63. if (route != null) {
  64. routeObserver.subscribe(this, route);
  65. }
  66. debugLogGlobalProperty(context);
  67. }
  68. @override
  69. void didPopNext() {
  70. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  71. setState(() => _model.isRouteVisible = true);
  72. debugLogWidgetClass(_model);
  73. }
  74. }
  75. @override
  76. void didPush() {
  77. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  78. setState(() => _model.isRouteVisible = true);
  79. debugLogWidgetClass(_model);
  80. }
  81. }
  82. @override
  83. void didPop() {
  84. _model.isRouteVisible = false;
  85. }
  86. @override
  87. void didPushNext() {
  88. _model.isRouteVisible = false;
  89. }
  90. @override
  91. Widget build(BuildContext context) {
  92. DebugFlutterFlowModelContext.maybeOf(context)
  93. ?.parentModelCallback
  94. ?.call(_model);
  95. context.watch<FFAppState>();
  96. _model.horecagelegenheidoverzichtKaartModels1.clear();
  97. _model.horecagelegenheidoverzichtKaartModels2.clear();
  98. _model.horecagelegenheidoverzichtKaartModels3.clear();
  99. _model.horecagelegenheidoverzichtKaartModels4.clear();
  100. _model.horecagelegenheidoverzichtKaartModels5.clear();
  101. _model.horecagelegenheidoverzichtKaartModels6.clear();
  102. return GestureDetector(
  103. onTap: () {
  104. FocusScope.of(context).unfocus();
  105. FocusManager.instance.primaryFocus?.unfocus();
  106. },
  107. child: Scaffold(
  108. key: scaffoldKey,
  109. backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
  110. drawer: Drawer(
  111. elevation: 16.0,
  112. child: wrapWithModel(
  113. model: _model.drawerComponentModel,
  114. updateCallback: () => safeSetState(() {}),
  115. child: Builder(builder: (_) {
  116. return DebugFlutterFlowModelContext(
  117. rootModel: _model.rootModel,
  118. child: DrawerComponentWidget(),
  119. );
  120. }),
  121. ),
  122. ),
  123. appBar: PreferredSize(
  124. preferredSize: Size.fromHeight(80.0),
  125. child: AppBar(
  126. backgroundColor: FlutterFlowTheme.of(context).info,
  127. iconTheme: IconThemeData(color: Color(0xFFB12727)),
  128. automaticallyImplyLeading: false,
  129. actions: [],
  130. flexibleSpace: FlexibleSpaceBar(
  131. title: Align(
  132. alignment: AlignmentDirectional(0.0, 0.0),
  133. child: Row(
  134. mainAxisSize: MainAxisSize.max,
  135. children: [
  136. FlutterFlowIconButton(
  137. borderRadius: 8.0,
  138. buttonSize: 40.0,
  139. fillColor: Color(0xFFB50808),
  140. icon: Icon(
  141. Icons.dehaze_outlined,
  142. color: FlutterFlowTheme.of(context).info,
  143. size: 24.0,
  144. ),
  145. onPressed: () async {
  146. scaffoldKey.currentState!.openDrawer();
  147. },
  148. ),
  149. Padding(
  150. padding:
  151. EdgeInsetsDirectional.fromSTEB(4.0, 0.0, 0.0, 0.0),
  152. child: FlutterFlowIconButton(
  153. borderColor: Color(0x00FF0000),
  154. borderRadius: 30.0,
  155. borderWidth: 1.0,
  156. buttonSize: 50.0,
  157. fillColor: Color(0xFFB50808),
  158. icon: Icon(
  159. Icons.arrow_back_outlined,
  160. color: Colors.white,
  161. size: 30.0,
  162. ),
  163. onPressed: () async {
  164. context.pop();
  165. },
  166. ),
  167. ),
  168. ],
  169. ),
  170. ),
  171. background: Align(
  172. alignment: AlignmentDirectional(0.0, 0.0),
  173. child: Padding(
  174. padding: EdgeInsetsDirectional.fromSTEB(60.0, 0.0, 5.0, 0.0),
  175. child: ClipRRect(
  176. borderRadius: BorderRadius.circular(8.0),
  177. child: Image.asset(
  178. 'assets/images/logo800px.png',
  179. width: () {
  180. if (MediaQuery.sizeOf(context).width <
  181. kBreakpointSmall) {
  182. return 150.0;
  183. } else if (MediaQuery.sizeOf(context).width <
  184. kBreakpointMedium) {
  185. return 225.0;
  186. } else if (MediaQuery.sizeOf(context).width <
  187. kBreakpointLarge) {
  188. return 350.0;
  189. } else {
  190. return 400.0;
  191. }
  192. }(),
  193. fit: BoxFit.fitWidth,
  194. ),
  195. ),
  196. ),
  197. ),
  198. centerTitle: true,
  199. expandedTitleScale: 1.0,
  200. ),
  201. bottom: PreferredSize(
  202. preferredSize: Size.fromHeight(70.0),
  203. child: Container(),
  204. ),
  205. toolbarHeight: MediaQuery.sizeOf(context).height * 0.25,
  206. elevation: 2.0,
  207. ),
  208. ),
  209. body: SafeArea(
  210. top: true,
  211. child: Column(
  212. mainAxisSize: MainAxisSize.max,
  213. children: [
  214. Expanded(
  215. child: Column(
  216. children: [
  217. Align(
  218. alignment: Alignment(-1.0, 0),
  219. child: TabBar(
  220. isScrollable: true,
  221. tabAlignment: TabAlignment.start,
  222. labelColor: FlutterFlowTheme.of(context).primaryText,
  223. unselectedLabelColor:
  224. FlutterFlowTheme.of(context).secondaryText,
  225. labelStyle:
  226. FlutterFlowTheme.of(context).titleMedium.override(
  227. font: GoogleFonts.interTight(
  228. fontWeight: FlutterFlowTheme.of(context)
  229. .titleMedium
  230. .fontWeight,
  231. fontStyle: FlutterFlowTheme.of(context)
  232. .titleMedium
  233. .fontStyle,
  234. ),
  235. letterSpacing: 0.0,
  236. fontWeight: FlutterFlowTheme.of(context)
  237. .titleMedium
  238. .fontWeight,
  239. fontStyle: FlutterFlowTheme.of(context)
  240. .titleMedium
  241. .fontStyle,
  242. ),
  243. unselectedLabelStyle:
  244. FlutterFlowTheme.of(context).titleMedium.override(
  245. font: GoogleFonts.interTight(
  246. fontWeight: FlutterFlowTheme.of(context)
  247. .titleMedium
  248. .fontWeight,
  249. fontStyle: FlutterFlowTheme.of(context)
  250. .titleMedium
  251. .fontStyle,
  252. ),
  253. letterSpacing: 0.0,
  254. fontWeight: FlutterFlowTheme.of(context)
  255. .titleMedium
  256. .fontWeight,
  257. fontStyle: FlutterFlowTheme.of(context)
  258. .titleMedium
  259. .fontStyle,
  260. ),
  261. indicatorColor: FlutterFlowTheme.of(context).primary,
  262. tabs: [
  263. Tab(
  264. text: FFLocalizations.of(context).getText(
  265. 'cfmj0g86' /* Activiteiten */,
  266. ),
  267. ),
  268. Tab(
  269. text: FFLocalizations.of(context).getText(
  270. 'od4c0ph1' /* Cultuur */,
  271. ),
  272. ),
  273. Tab(
  274. text: FFLocalizations.of(context).getText(
  275. 'i9cdclh1' /* Eetgelegenheden */,
  276. ),
  277. ),
  278. Tab(
  279. text: FFLocalizations.of(context).getText(
  280. '9s07bzb1' /* Overnachten */,
  281. ),
  282. ),
  283. Tab(
  284. text: FFLocalizations.of(context).getText(
  285. 'egcnfi7k' /* Uitgaan */,
  286. ),
  287. ),
  288. Tab(
  289. text: FFLocalizations.of(context).getText(
  290. '3i8p2r6z' /* Verhuur, catering */,
  291. ),
  292. ),
  293. ],
  294. controller: _model.tabBarController,
  295. onTap: (i) async {
  296. [
  297. () async {},
  298. () async {},
  299. () async {},
  300. () async {},
  301. () async {},
  302. () async {}
  303. ][i]();
  304. },
  305. ),
  306. ),
  307. Expanded(
  308. child: TabBarView(
  309. controller: _model.tabBarController,
  310. children: [
  311. Column(
  312. mainAxisSize: MainAxisSize.max,
  313. children: [
  314. FutureBuilder<ApiCallResponse>(
  315. future: EstablishmentsCall.call(
  316. horcat: '17969',
  317. townid: widget!.plaats,
  318. ),
  319. builder: (context, snapshot) {
  320. // Customize what your widget looks like when it's loading.
  321. if (!snapshot.hasData) {
  322. return Center(
  323. child: SizedBox(
  324. width: 80.0,
  325. height: 80.0,
  326. child: SpinKitFadingCircle(
  327. color: Color(0xFFB1061E),
  328. size: 80.0,
  329. ),
  330. ),
  331. );
  332. }
  333. final staggeredViewEstablishmentsResponse =
  334. snapshot.data!;
  335. _model.debugBackendQueries[
  336. 'EstablishmentsCall_statusCode_StaggeredView_ezq3lq60'] =
  337. debugSerializeParam(
  338. staggeredViewEstablishmentsResponse
  339. .statusCode,
  340. ParamType.int,
  341. link:
  342. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  343. name: 'int',
  344. nullable: false,
  345. );
  346. _model.debugBackendQueries[
  347. 'EstablishmentsCall_responseBody_StaggeredView_ezq3lq60'] =
  348. debugSerializeParam(
  349. staggeredViewEstablishmentsResponse
  350. .bodyText,
  351. ParamType.String,
  352. link:
  353. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  354. name: 'String',
  355. nullable: false,
  356. );
  357. debugLogWidgetClass(_model);
  358. return Builder(
  359. builder: (context) {
  360. final horecagelegenheden = getJsonField(
  361. staggeredViewEstablishmentsResponse
  362. .jsonBody,
  363. r'''$''',
  364. ).toList().take(25).toList();
  365. _model.debugGeneratorVariables[
  366. 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
  367. debugSerializeParam(
  368. horecagelegenheden.take(100),
  369. ParamType.JSON,
  370. isList: true,
  371. link:
  372. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  373. name: 'dynamic',
  374. nullable: false,
  375. );
  376. debugLogWidgetClass(_model);
  377. return MasonryGridView.builder(
  378. physics:
  379. const NeverScrollableScrollPhysics(),
  380. gridDelegate:
  381. SliverSimpleGridDelegateWithFixedCrossAxisCount(
  382. crossAxisCount: () {
  383. if (MediaQuery.sizeOf(context)
  384. .width <
  385. kBreakpointSmall) {
  386. return 1;
  387. } else if (MediaQuery.sizeOf(
  388. context)
  389. .width <
  390. kBreakpointMedium) {
  391. return 1;
  392. } else if (MediaQuery.sizeOf(
  393. context)
  394. .width <
  395. kBreakpointLarge) {
  396. return 2;
  397. } else {
  398. return 3;
  399. }
  400. }(),
  401. ),
  402. crossAxisSpacing: 12.0,
  403. mainAxisSpacing: 12.0,
  404. itemCount: horecagelegenheden.length,
  405. shrinkWrap: true,
  406. itemBuilder:
  407. (context, horecagelegenhedenIndex) {
  408. final horecagelegenhedenItem =
  409. horecagelegenheden[
  410. horecagelegenhedenIndex];
  411. return Container(
  412. width: 600.0,
  413. height: 225.0,
  414. decoration: BoxDecoration(
  415. color:
  416. FlutterFlowTheme.of(context)
  417. .secondaryBackground,
  418. ),
  419. child: InkWell(
  420. splashColor: Colors.transparent,
  421. focusColor: Colors.transparent,
  422. hoverColor: Colors.transparent,
  423. highlightColor:
  424. Colors.transparent,
  425. onTap: () async {
  426. context.pushNamed(
  427. HorecagelegenheidCurrentWidget
  428. .routeName,
  429. queryParameters: {
  430. 'nid': serializeParam(
  431. getJsonField(
  432. horecagelegenhedenItem,
  433. r'''$.nid''',
  434. ).toString(),
  435. ParamType.String,
  436. ),
  437. }.withoutNulls,
  438. );
  439. },
  440. child: Builder(builder: (_) {
  441. return DebugFlutterFlowModelContext(
  442. rootModel: _model.rootModel,
  443. parentModelCallback: (m) {
  444. _model.horecagelegenheidoverzichtKaartModels1[
  445. 'Keyxu9_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
  446. },
  447. child:
  448. HorecagelegenheidoverzichtKaartWidget(
  449. key: Key(
  450. 'Keyxu9_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
  451. titel: getJsonField(
  452. horecagelegenhedenItem,
  453. r'''$.titel''',
  454. ).toString(),
  455. logo: getJsonField(
  456. horecagelegenhedenItem,
  457. r'''$.logo''',
  458. ).toString(),
  459. nid: getJsonField(
  460. horecagelegenhedenItem,
  461. r'''$.nid''',
  462. ).toString(),
  463. adres: getJsonField(
  464. horecagelegenhedenItem,
  465. r'''$.adres''',
  466. ).toString(),
  467. plaats: getJsonField(
  468. horecagelegenhedenItem,
  469. r'''$.plaats''',
  470. ).toString(),
  471. categorie: (getJsonField(
  472. horecagelegenhedenItem,
  473. r'''$.categorie''',
  474. true,
  475. ) as List?)
  476. ?.map<String>(
  477. (e) => e.toString())
  478. .toList()
  479. .cast<String>(),
  480. ),
  481. );
  482. }),
  483. ),
  484. );
  485. },
  486. );
  487. },
  488. );
  489. },
  490. ),
  491. ],
  492. ),
  493. Column(
  494. mainAxisSize: MainAxisSize.max,
  495. children: [
  496. FutureBuilder<ApiCallResponse>(
  497. future: EstablishmentsCall.call(
  498. horcat: '17963',
  499. townid: widget!.plaats,
  500. ),
  501. builder: (context, snapshot) {
  502. // Customize what your widget looks like when it's loading.
  503. if (!snapshot.hasData) {
  504. return Center(
  505. child: SizedBox(
  506. width: 80.0,
  507. height: 80.0,
  508. child: SpinKitFadingCircle(
  509. color: Color(0xFFB1061E),
  510. size: 80.0,
  511. ),
  512. ),
  513. );
  514. }
  515. final staggeredViewEstablishmentsResponse =
  516. snapshot.data!;
  517. _model.debugBackendQueries[
  518. 'EstablishmentsCall_statusCode_StaggeredView_p4qa6f0b'] =
  519. debugSerializeParam(
  520. staggeredViewEstablishmentsResponse
  521. .statusCode,
  522. ParamType.int,
  523. link:
  524. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  525. name: 'int',
  526. nullable: false,
  527. );
  528. _model.debugBackendQueries[
  529. 'EstablishmentsCall_responseBody_StaggeredView_p4qa6f0b'] =
  530. debugSerializeParam(
  531. staggeredViewEstablishmentsResponse
  532. .bodyText,
  533. ParamType.String,
  534. link:
  535. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  536. name: 'String',
  537. nullable: false,
  538. );
  539. debugLogWidgetClass(_model);
  540. return Builder(
  541. builder: (context) {
  542. final horecagelegenheden = getJsonField(
  543. staggeredViewEstablishmentsResponse
  544. .jsonBody,
  545. r'''$''',
  546. ).toList().take(25).toList();
  547. _model.debugGeneratorVariables[
  548. 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
  549. debugSerializeParam(
  550. horecagelegenheden.take(100),
  551. ParamType.JSON,
  552. isList: true,
  553. link:
  554. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  555. name: 'dynamic',
  556. nullable: false,
  557. );
  558. debugLogWidgetClass(_model);
  559. return MasonryGridView.builder(
  560. physics:
  561. const NeverScrollableScrollPhysics(),
  562. gridDelegate:
  563. SliverSimpleGridDelegateWithFixedCrossAxisCount(
  564. crossAxisCount: () {
  565. if (MediaQuery.sizeOf(context)
  566. .width <
  567. kBreakpointSmall) {
  568. return 1;
  569. } else if (MediaQuery.sizeOf(
  570. context)
  571. .width <
  572. kBreakpointMedium) {
  573. return 1;
  574. } else if (MediaQuery.sizeOf(
  575. context)
  576. .width <
  577. kBreakpointLarge) {
  578. return 2;
  579. } else {
  580. return 3;
  581. }
  582. }(),
  583. ),
  584. crossAxisSpacing: 12.0,
  585. mainAxisSpacing: 12.0,
  586. itemCount: horecagelegenheden.length,
  587. shrinkWrap: true,
  588. itemBuilder:
  589. (context, horecagelegenhedenIndex) {
  590. final horecagelegenhedenItem =
  591. horecagelegenheden[
  592. horecagelegenhedenIndex];
  593. return Container(
  594. width: 600.0,
  595. height: 225.0,
  596. decoration: BoxDecoration(
  597. color:
  598. FlutterFlowTheme.of(context)
  599. .secondaryBackground,
  600. ),
  601. child: InkWell(
  602. splashColor: Colors.transparent,
  603. focusColor: Colors.transparent,
  604. hoverColor: Colors.transparent,
  605. highlightColor:
  606. Colors.transparent,
  607. onTap: () async {
  608. context.pushNamed(
  609. HorecagelegenheidCurrentWidget
  610. .routeName,
  611. queryParameters: {
  612. 'nid': serializeParam(
  613. getJsonField(
  614. horecagelegenhedenItem,
  615. r'''$.nid''',
  616. ).toString(),
  617. ParamType.String,
  618. ),
  619. }.withoutNulls,
  620. );
  621. },
  622. child: Builder(builder: (_) {
  623. return DebugFlutterFlowModelContext(
  624. rootModel: _model.rootModel,
  625. parentModelCallback: (m) {
  626. _model.horecagelegenheidoverzichtKaartModels2[
  627. 'Keyjss_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
  628. },
  629. child:
  630. HorecagelegenheidoverzichtKaartWidget(
  631. key: Key(
  632. 'Keyjss_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
  633. titel: getJsonField(
  634. horecagelegenhedenItem,
  635. r'''$.titel''',
  636. ).toString(),
  637. logo: getJsonField(
  638. horecagelegenhedenItem,
  639. r'''$.logo''',
  640. ).toString(),
  641. nid: getJsonField(
  642. horecagelegenhedenItem,
  643. r'''$.nid''',
  644. ).toString(),
  645. adres: getJsonField(
  646. horecagelegenhedenItem,
  647. r'''$.adres''',
  648. ).toString(),
  649. plaats: getJsonField(
  650. horecagelegenhedenItem,
  651. r'''$.plaats''',
  652. ).toString(),
  653. categorie: (getJsonField(
  654. horecagelegenhedenItem,
  655. r'''$.categorie''',
  656. true,
  657. ) as List?)
  658. ?.map<String>(
  659. (e) => e.toString())
  660. .toList()
  661. .cast<String>(),
  662. ),
  663. );
  664. }),
  665. ),
  666. );
  667. },
  668. );
  669. },
  670. );
  671. },
  672. ),
  673. ],
  674. ),
  675. Column(
  676. mainAxisSize: MainAxisSize.max,
  677. children: [
  678. FutureBuilder<ApiCallResponse>(
  679. future: EstablishmentsCall.call(
  680. horcat: '34',
  681. townid: widget!.plaats,
  682. ),
  683. builder: (context, snapshot) {
  684. // Customize what your widget looks like when it's loading.
  685. if (!snapshot.hasData) {
  686. return Center(
  687. child: SizedBox(
  688. width: 80.0,
  689. height: 80.0,
  690. child: SpinKitFadingCircle(
  691. color: Color(0xFFB1061E),
  692. size: 80.0,
  693. ),
  694. ),
  695. );
  696. }
  697. final staggeredViewEstablishmentsResponse =
  698. snapshot.data!;
  699. _model.debugBackendQueries[
  700. 'EstablishmentsCall_statusCode_StaggeredView_n4zm8jsx'] =
  701. debugSerializeParam(
  702. staggeredViewEstablishmentsResponse
  703. .statusCode,
  704. ParamType.int,
  705. link:
  706. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  707. name: 'int',
  708. nullable: false,
  709. );
  710. _model.debugBackendQueries[
  711. 'EstablishmentsCall_responseBody_StaggeredView_n4zm8jsx'] =
  712. debugSerializeParam(
  713. staggeredViewEstablishmentsResponse
  714. .bodyText,
  715. ParamType.String,
  716. link:
  717. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  718. name: 'String',
  719. nullable: false,
  720. );
  721. debugLogWidgetClass(_model);
  722. return Builder(
  723. builder: (context) {
  724. final horecagelegenheden = getJsonField(
  725. staggeredViewEstablishmentsResponse
  726. .jsonBody,
  727. r'''$''',
  728. ).toList().take(25).toList();
  729. _model.debugGeneratorVariables[
  730. 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
  731. debugSerializeParam(
  732. horecagelegenheden.take(100),
  733. ParamType.JSON,
  734. isList: true,
  735. link:
  736. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  737. name: 'dynamic',
  738. nullable: false,
  739. );
  740. debugLogWidgetClass(_model);
  741. return MasonryGridView.builder(
  742. physics:
  743. const NeverScrollableScrollPhysics(),
  744. gridDelegate:
  745. SliverSimpleGridDelegateWithFixedCrossAxisCount(
  746. crossAxisCount: () {
  747. if (MediaQuery.sizeOf(context)
  748. .width <
  749. kBreakpointSmall) {
  750. return 1;
  751. } else if (MediaQuery.sizeOf(
  752. context)
  753. .width <
  754. kBreakpointMedium) {
  755. return 1;
  756. } else if (MediaQuery.sizeOf(
  757. context)
  758. .width <
  759. kBreakpointLarge) {
  760. return 2;
  761. } else {
  762. return 3;
  763. }
  764. }(),
  765. ),
  766. crossAxisSpacing: 12.0,
  767. mainAxisSpacing: 12.0,
  768. itemCount: horecagelegenheden.length,
  769. shrinkWrap: true,
  770. itemBuilder:
  771. (context, horecagelegenhedenIndex) {
  772. final horecagelegenhedenItem =
  773. horecagelegenheden[
  774. horecagelegenhedenIndex];
  775. return Container(
  776. width: 600.0,
  777. height: 225.0,
  778. decoration: BoxDecoration(
  779. color:
  780. FlutterFlowTheme.of(context)
  781. .secondaryBackground,
  782. ),
  783. child: InkWell(
  784. splashColor: Colors.transparent,
  785. focusColor: Colors.transparent,
  786. hoverColor: Colors.transparent,
  787. highlightColor:
  788. Colors.transparent,
  789. onTap: () async {
  790. context.pushNamed(
  791. HorecagelegenheidCurrentWidget
  792. .routeName,
  793. queryParameters: {
  794. 'nid': serializeParam(
  795. getJsonField(
  796. horecagelegenhedenItem,
  797. r'''$.nid''',
  798. ).toString(),
  799. ParamType.String,
  800. ),
  801. }.withoutNulls,
  802. );
  803. },
  804. child: Builder(builder: (_) {
  805. return DebugFlutterFlowModelContext(
  806. rootModel: _model.rootModel,
  807. parentModelCallback: (m) {
  808. _model.horecagelegenheidoverzichtKaartModels3[
  809. 'Key81b_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
  810. },
  811. child:
  812. HorecagelegenheidoverzichtKaartWidget(
  813. key: Key(
  814. 'Key81b_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
  815. titel: getJsonField(
  816. horecagelegenhedenItem,
  817. r'''$.titel''',
  818. ).toString(),
  819. logo: getJsonField(
  820. horecagelegenhedenItem,
  821. r'''$.logo''',
  822. ).toString(),
  823. nid: getJsonField(
  824. horecagelegenhedenItem,
  825. r'''$.nid''',
  826. ).toString(),
  827. adres: getJsonField(
  828. horecagelegenhedenItem,
  829. r'''$.adres''',
  830. ).toString(),
  831. plaats: getJsonField(
  832. horecagelegenhedenItem,
  833. r'''$.plaats''',
  834. ).toString(),
  835. categorie: (getJsonField(
  836. horecagelegenhedenItem,
  837. r'''$.categorie''',
  838. true,
  839. ) as List?)
  840. ?.map<String>(
  841. (e) => e.toString())
  842. .toList()
  843. .cast<String>(),
  844. ),
  845. );
  846. }),
  847. ),
  848. );
  849. },
  850. );
  851. },
  852. );
  853. },
  854. ),
  855. ],
  856. ),
  857. Column(
  858. mainAxisSize: MainAxisSize.max,
  859. children: [
  860. FutureBuilder<ApiCallResponse>(
  861. future: EstablishmentsCall.call(
  862. horcat: '17965',
  863. townid: widget!.plaats,
  864. ),
  865. builder: (context, snapshot) {
  866. // Customize what your widget looks like when it's loading.
  867. if (!snapshot.hasData) {
  868. return Center(
  869. child: SizedBox(
  870. width: 80.0,
  871. height: 80.0,
  872. child: SpinKitFadingCircle(
  873. color: Color(0xFFB1061E),
  874. size: 80.0,
  875. ),
  876. ),
  877. );
  878. }
  879. final staggeredViewEstablishmentsResponse =
  880. snapshot.data!;
  881. _model.debugBackendQueries[
  882. 'EstablishmentsCall_statusCode_StaggeredView_51qs4ew3'] =
  883. debugSerializeParam(
  884. staggeredViewEstablishmentsResponse
  885. .statusCode,
  886. ParamType.int,
  887. link:
  888. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  889. name: 'int',
  890. nullable: false,
  891. );
  892. _model.debugBackendQueries[
  893. 'EstablishmentsCall_responseBody_StaggeredView_51qs4ew3'] =
  894. debugSerializeParam(
  895. staggeredViewEstablishmentsResponse
  896. .bodyText,
  897. ParamType.String,
  898. link:
  899. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  900. name: 'String',
  901. nullable: false,
  902. );
  903. debugLogWidgetClass(_model);
  904. return Builder(
  905. builder: (context) {
  906. final horecagelegenheden = getJsonField(
  907. staggeredViewEstablishmentsResponse
  908. .jsonBody,
  909. r'''$''',
  910. ).toList().take(25).toList();
  911. _model.debugGeneratorVariables[
  912. 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
  913. debugSerializeParam(
  914. horecagelegenheden.take(100),
  915. ParamType.JSON,
  916. isList: true,
  917. link:
  918. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  919. name: 'dynamic',
  920. nullable: false,
  921. );
  922. debugLogWidgetClass(_model);
  923. return MasonryGridView.builder(
  924. physics:
  925. const NeverScrollableScrollPhysics(),
  926. gridDelegate:
  927. SliverSimpleGridDelegateWithFixedCrossAxisCount(
  928. crossAxisCount: () {
  929. if (MediaQuery.sizeOf(context)
  930. .width <
  931. kBreakpointSmall) {
  932. return 1;
  933. } else if (MediaQuery.sizeOf(
  934. context)
  935. .width <
  936. kBreakpointMedium) {
  937. return 1;
  938. } else if (MediaQuery.sizeOf(
  939. context)
  940. .width <
  941. kBreakpointLarge) {
  942. return 2;
  943. } else {
  944. return 3;
  945. }
  946. }(),
  947. ),
  948. crossAxisSpacing: 12.0,
  949. mainAxisSpacing: 12.0,
  950. itemCount: horecagelegenheden.length,
  951. shrinkWrap: true,
  952. itemBuilder:
  953. (context, horecagelegenhedenIndex) {
  954. final horecagelegenhedenItem =
  955. horecagelegenheden[
  956. horecagelegenhedenIndex];
  957. return Container(
  958. width: 600.0,
  959. height: 225.0,
  960. decoration: BoxDecoration(
  961. color:
  962. FlutterFlowTheme.of(context)
  963. .secondaryBackground,
  964. ),
  965. child: InkWell(
  966. splashColor: Colors.transparent,
  967. focusColor: Colors.transparent,
  968. hoverColor: Colors.transparent,
  969. highlightColor:
  970. Colors.transparent,
  971. onTap: () async {
  972. context.pushNamed(
  973. HorecagelegenheidCurrentWidget
  974. .routeName,
  975. queryParameters: {
  976. 'nid': serializeParam(
  977. getJsonField(
  978. horecagelegenhedenItem,
  979. r'''$.nid''',
  980. ).toString(),
  981. ParamType.String,
  982. ),
  983. }.withoutNulls,
  984. );
  985. },
  986. child: Builder(builder: (_) {
  987. return DebugFlutterFlowModelContext(
  988. rootModel: _model.rootModel,
  989. parentModelCallback: (m) {
  990. _model.horecagelegenheidoverzichtKaartModels4[
  991. 'Keyqfe_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
  992. },
  993. child:
  994. HorecagelegenheidoverzichtKaartWidget(
  995. key: Key(
  996. 'Keyqfe_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
  997. titel: getJsonField(
  998. horecagelegenhedenItem,
  999. r'''$.titel''',
  1000. ).toString(),
  1001. logo: getJsonField(
  1002. horecagelegenhedenItem,
  1003. r'''$.logo''',
  1004. ).toString(),
  1005. nid: getJsonField(
  1006. horecagelegenhedenItem,
  1007. r'''$.nid''',
  1008. ).toString(),
  1009. adres: getJsonField(
  1010. horecagelegenhedenItem,
  1011. r'''$.adres''',
  1012. ).toString(),
  1013. plaats: getJsonField(
  1014. horecagelegenhedenItem,
  1015. r'''$.plaats''',
  1016. ).toString(),
  1017. categorie: (getJsonField(
  1018. horecagelegenhedenItem,
  1019. r'''$.categorie''',
  1020. true,
  1021. ) as List?)
  1022. ?.map<String>(
  1023. (e) => e.toString())
  1024. .toList()
  1025. .cast<String>(),
  1026. ),
  1027. );
  1028. }),
  1029. ),
  1030. );
  1031. },
  1032. );
  1033. },
  1034. );
  1035. },
  1036. ),
  1037. ],
  1038. ),
  1039. Column(
  1040. mainAxisSize: MainAxisSize.max,
  1041. children: [
  1042. FutureBuilder<ApiCallResponse>(
  1043. future: EstablishmentsCall.call(
  1044. horcat: '17967',
  1045. townid: FFAppState().provincieSelectId,
  1046. ),
  1047. builder: (context, snapshot) {
  1048. // Customize what your widget looks like when it's loading.
  1049. if (!snapshot.hasData) {
  1050. return Center(
  1051. child: SizedBox(
  1052. width: 80.0,
  1053. height: 80.0,
  1054. child: SpinKitFadingCircle(
  1055. color: Color(0xFFB1061E),
  1056. size: 80.0,
  1057. ),
  1058. ),
  1059. );
  1060. }
  1061. final staggeredViewEstablishmentsResponse =
  1062. snapshot.data!;
  1063. _model.debugBackendQueries[
  1064. 'EstablishmentsCall_statusCode_StaggeredView_2y8hmnf7'] =
  1065. debugSerializeParam(
  1066. staggeredViewEstablishmentsResponse
  1067. .statusCode,
  1068. ParamType.int,
  1069. link:
  1070. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  1071. name: 'int',
  1072. nullable: false,
  1073. );
  1074. _model.debugBackendQueries[
  1075. 'EstablishmentsCall_responseBody_StaggeredView_2y8hmnf7'] =
  1076. debugSerializeParam(
  1077. staggeredViewEstablishmentsResponse
  1078. .bodyText,
  1079. ParamType.String,
  1080. link:
  1081. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  1082. name: 'String',
  1083. nullable: false,
  1084. );
  1085. debugLogWidgetClass(_model);
  1086. return Builder(
  1087. builder: (context) {
  1088. final horecagelegenheden = getJsonField(
  1089. staggeredViewEstablishmentsResponse
  1090. .jsonBody,
  1091. r'''$''',
  1092. ).toList().take(25).toList();
  1093. _model.debugGeneratorVariables[
  1094. 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
  1095. debugSerializeParam(
  1096. horecagelegenheden.take(100),
  1097. ParamType.JSON,
  1098. isList: true,
  1099. link:
  1100. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  1101. name: 'dynamic',
  1102. nullable: false,
  1103. );
  1104. debugLogWidgetClass(_model);
  1105. return MasonryGridView.builder(
  1106. physics:
  1107. const NeverScrollableScrollPhysics(),
  1108. gridDelegate:
  1109. SliverSimpleGridDelegateWithFixedCrossAxisCount(
  1110. crossAxisCount: () {
  1111. if (MediaQuery.sizeOf(context)
  1112. .width <
  1113. kBreakpointSmall) {
  1114. return 1;
  1115. } else if (MediaQuery.sizeOf(
  1116. context)
  1117. .width <
  1118. kBreakpointMedium) {
  1119. return 1;
  1120. } else if (MediaQuery.sizeOf(
  1121. context)
  1122. .width <
  1123. kBreakpointLarge) {
  1124. return 2;
  1125. } else {
  1126. return 3;
  1127. }
  1128. }(),
  1129. ),
  1130. crossAxisSpacing: 12.0,
  1131. mainAxisSpacing: 12.0,
  1132. itemCount: horecagelegenheden.length,
  1133. shrinkWrap: true,
  1134. itemBuilder:
  1135. (context, horecagelegenhedenIndex) {
  1136. final horecagelegenhedenItem =
  1137. horecagelegenheden[
  1138. horecagelegenhedenIndex];
  1139. return Container(
  1140. width: 600.0,
  1141. height: 225.0,
  1142. decoration: BoxDecoration(
  1143. color:
  1144. FlutterFlowTheme.of(context)
  1145. .secondaryBackground,
  1146. ),
  1147. child: InkWell(
  1148. splashColor: Colors.transparent,
  1149. focusColor: Colors.transparent,
  1150. hoverColor: Colors.transparent,
  1151. highlightColor:
  1152. Colors.transparent,
  1153. onTap: () async {
  1154. context.pushNamed(
  1155. HorecagelegenheidCurrentWidget
  1156. .routeName,
  1157. queryParameters: {
  1158. 'nid': serializeParam(
  1159. getJsonField(
  1160. horecagelegenhedenItem,
  1161. r'''$.nid''',
  1162. ).toString(),
  1163. ParamType.String,
  1164. ),
  1165. }.withoutNulls,
  1166. );
  1167. },
  1168. child: Builder(builder: (_) {
  1169. return DebugFlutterFlowModelContext(
  1170. rootModel: _model.rootModel,
  1171. parentModelCallback: (m) {
  1172. _model.horecagelegenheidoverzichtKaartModels5[
  1173. 'Key81q_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
  1174. },
  1175. child:
  1176. HorecagelegenheidoverzichtKaartWidget(
  1177. key: Key(
  1178. 'Key81q_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
  1179. titel: getJsonField(
  1180. horecagelegenhedenItem,
  1181. r'''$.titel''',
  1182. ).toString(),
  1183. logo: getJsonField(
  1184. horecagelegenhedenItem,
  1185. r'''$.logo''',
  1186. ).toString(),
  1187. nid: getJsonField(
  1188. horecagelegenhedenItem,
  1189. r'''$.nid''',
  1190. ).toString(),
  1191. adres: getJsonField(
  1192. horecagelegenhedenItem,
  1193. r'''$.adres''',
  1194. ).toString(),
  1195. plaats: getJsonField(
  1196. horecagelegenhedenItem,
  1197. r'''$.plaats''',
  1198. ).toString(),
  1199. categorie: (getJsonField(
  1200. horecagelegenhedenItem,
  1201. r'''$.categorie''',
  1202. true,
  1203. ) as List?)
  1204. ?.map<String>(
  1205. (e) => e.toString())
  1206. .toList()
  1207. .cast<String>(),
  1208. ),
  1209. );
  1210. }),
  1211. ),
  1212. );
  1213. },
  1214. );
  1215. },
  1216. );
  1217. },
  1218. ),
  1219. ],
  1220. ),
  1221. Column(
  1222. mainAxisSize: MainAxisSize.max,
  1223. children: [
  1224. FutureBuilder<ApiCallResponse>(
  1225. future: EstablishmentsCall.call(
  1226. horcat: '17968',
  1227. townid: widget!.plaats,
  1228. ),
  1229. builder: (context, snapshot) {
  1230. // Customize what your widget looks like when it's loading.
  1231. if (!snapshot.hasData) {
  1232. return Center(
  1233. child: SizedBox(
  1234. width: 80.0,
  1235. height: 80.0,
  1236. child: SpinKitFadingCircle(
  1237. color: Color(0xFFB1061E),
  1238. size: 80.0,
  1239. ),
  1240. ),
  1241. );
  1242. }
  1243. final staggeredViewEstablishmentsResponse =
  1244. snapshot.data!;
  1245. _model.debugBackendQueries[
  1246. 'EstablishmentsCall_statusCode_StaggeredView_9f73d118'] =
  1247. debugSerializeParam(
  1248. staggeredViewEstablishmentsResponse
  1249. .statusCode,
  1250. ParamType.int,
  1251. link:
  1252. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  1253. name: 'int',
  1254. nullable: false,
  1255. );
  1256. _model.debugBackendQueries[
  1257. 'EstablishmentsCall_responseBody_StaggeredView_9f73d118'] =
  1258. debugSerializeParam(
  1259. staggeredViewEstablishmentsResponse
  1260. .bodyText,
  1261. ParamType.String,
  1262. link:
  1263. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  1264. name: 'String',
  1265. nullable: false,
  1266. );
  1267. debugLogWidgetClass(_model);
  1268. return Builder(
  1269. builder: (context) {
  1270. final horecagelegenheden = getJsonField(
  1271. staggeredViewEstablishmentsResponse
  1272. .jsonBody,
  1273. r'''$''',
  1274. ).toList().take(25).toList();
  1275. _model.debugGeneratorVariables[
  1276. 'horecagelegenheden${horecagelegenheden.length > 100 ? ' (first 100)' : ''}'] =
  1277. debugSerializeParam(
  1278. horecagelegenheden.take(100),
  1279. ParamType.JSON,
  1280. isList: true,
  1281. link:
  1282. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=HorecagelegenhedenOverzicht',
  1283. name: 'dynamic',
  1284. nullable: false,
  1285. );
  1286. debugLogWidgetClass(_model);
  1287. return MasonryGridView.builder(
  1288. physics:
  1289. const NeverScrollableScrollPhysics(),
  1290. gridDelegate:
  1291. SliverSimpleGridDelegateWithFixedCrossAxisCount(
  1292. crossAxisCount: () {
  1293. if (MediaQuery.sizeOf(context)
  1294. .width <
  1295. kBreakpointSmall) {
  1296. return 1;
  1297. } else if (MediaQuery.sizeOf(
  1298. context)
  1299. .width <
  1300. kBreakpointMedium) {
  1301. return 1;
  1302. } else if (MediaQuery.sizeOf(
  1303. context)
  1304. .width <
  1305. kBreakpointLarge) {
  1306. return 2;
  1307. } else {
  1308. return 3;
  1309. }
  1310. }(),
  1311. ),
  1312. crossAxisSpacing: 12.0,
  1313. mainAxisSpacing: 12.0,
  1314. itemCount: horecagelegenheden.length,
  1315. shrinkWrap: true,
  1316. itemBuilder:
  1317. (context, horecagelegenhedenIndex) {
  1318. final horecagelegenhedenItem =
  1319. horecagelegenheden[
  1320. horecagelegenhedenIndex];
  1321. return Container(
  1322. width: 600.0,
  1323. height: 225.0,
  1324. decoration: BoxDecoration(
  1325. color:
  1326. FlutterFlowTheme.of(context)
  1327. .secondaryBackground,
  1328. ),
  1329. child: InkWell(
  1330. splashColor: Colors.transparent,
  1331. focusColor: Colors.transparent,
  1332. hoverColor: Colors.transparent,
  1333. highlightColor:
  1334. Colors.transparent,
  1335. onTap: () async {
  1336. context.pushNamed(
  1337. HorecagelegenheidCurrentWidget
  1338. .routeName,
  1339. queryParameters: {
  1340. 'nid': serializeParam(
  1341. getJsonField(
  1342. horecagelegenhedenItem,
  1343. r'''$.nid''',
  1344. ).toString(),
  1345. ParamType.String,
  1346. ),
  1347. }.withoutNulls,
  1348. );
  1349. },
  1350. child: Builder(builder: (_) {
  1351. return DebugFlutterFlowModelContext(
  1352. rootModel: _model.rootModel,
  1353. parentModelCallback: (m) {
  1354. _model.horecagelegenheidoverzichtKaartModels6[
  1355. 'Keykrk_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'] = m;
  1356. },
  1357. child:
  1358. HorecagelegenheidoverzichtKaartWidget(
  1359. key: Key(
  1360. 'Keykrk_${horecagelegenhedenIndex}_of_${horecagelegenheden.length}'),
  1361. titel: getJsonField(
  1362. horecagelegenhedenItem,
  1363. r'''$.titel''',
  1364. ).toString(),
  1365. logo: getJsonField(
  1366. horecagelegenhedenItem,
  1367. r'''$.logo''',
  1368. ).toString(),
  1369. nid: getJsonField(
  1370. horecagelegenhedenItem,
  1371. r'''$.nid''',
  1372. ).toString(),
  1373. adres: getJsonField(
  1374. horecagelegenhedenItem,
  1375. r'''$.adres''',
  1376. ).toString(),
  1377. plaats: getJsonField(
  1378. horecagelegenhedenItem,
  1379. r'''$.plaats''',
  1380. ).toString(),
  1381. categorie: (getJsonField(
  1382. horecagelegenhedenItem,
  1383. r'''$.categorie''',
  1384. true,
  1385. ) as List?)
  1386. ?.map<String>(
  1387. (e) => e.toString())
  1388. .toList()
  1389. .cast<String>(),
  1390. ),
  1391. );
  1392. }),
  1393. ),
  1394. );
  1395. },
  1396. );
  1397. },
  1398. );
  1399. },
  1400. ),
  1401. ],
  1402. ),
  1403. ],
  1404. ),
  1405. ),
  1406. ],
  1407. ),
  1408. ),
  1409. ],
  1410. ),
  1411. ),
  1412. ),
  1413. );
  1414. }
  1415. }