horecagelegenheden_overzicht_widget.dart 88 KB

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