event_current_widget.dart 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869
  1. import '/backend/api_requests/api_calls.dart';
  2. import '/components/google_maps_icon_button_widget.dart';
  3. import '/components/header_buttons_component_widget.dart';
  4. import '/evenement/evenement_horecagelegenheid/evenement_horecagelegenheid_widget.dart';
  5. import '/evenement/evenement_info/evenement_info_widget.dart';
  6. import '/evenement/evenement_v2_h_t_m_l_component/evenement_v2_h_t_m_l_component_widget.dart';
  7. import '/flutter_flow/flutter_flow_ad_banner.dart';
  8. import '/flutter_flow/flutter_flow_icon_button.dart';
  9. import '/flutter_flow/flutter_flow_theme.dart';
  10. import '/flutter_flow/flutter_flow_util.dart';
  11. import '/flutter_flow/flutter_flow_widgets.dart';
  12. import '/shared/drawer_component/drawer_component_widget.dart';
  13. import 'dart:ui';
  14. import '/index.dart';
  15. import 'package:aligned_tooltip/aligned_tooltip.dart';
  16. import 'package:carousel_slider/carousel_slider.dart';
  17. import 'package:cached_network_image/cached_network_image.dart';
  18. import 'package:flutter/material.dart';
  19. import 'package:flutter_blurhash/flutter_blurhash.dart';
  20. import 'package:flutter_spinkit/flutter_spinkit.dart';
  21. import 'package:google_fonts/google_fonts.dart';
  22. import 'package:octo_image/octo_image.dart';
  23. import 'package:provider/provider.dart';
  24. import 'package:share_plus/share_plus.dart';
  25. import 'event_current_model.dart';
  26. export 'event_current_model.dart';
  27. class EventCurrentWidget extends StatefulWidget {
  28. const EventCurrentWidget({
  29. super.key,
  30. this.nid,
  31. this.horecaid,
  32. });
  33. final String? nid;
  34. final String? horecaid;
  35. static String routeName = 'EventCurrent';
  36. static String routePath = '/eventCurrent';
  37. @override
  38. State<EventCurrentWidget> createState() => _EventCurrentWidgetState();
  39. }
  40. class _EventCurrentWidgetState extends State<EventCurrentWidget>
  41. with RouteAware {
  42. late EventCurrentModel _model;
  43. final scaffoldKey = GlobalKey<ScaffoldState>();
  44. @override
  45. void initState() {
  46. super.initState();
  47. _model = createModel(context, () => EventCurrentModel());
  48. }
  49. @override
  50. void dispose() {
  51. routeObserver.unsubscribe(this);
  52. _model.dispose();
  53. super.dispose();
  54. }
  55. @override
  56. void didUpdateWidget(EventCurrentWidget oldWidget) {
  57. super.didUpdateWidget(oldWidget);
  58. _model.widget = widget;
  59. }
  60. @override
  61. void didChangeDependencies() {
  62. super.didChangeDependencies();
  63. final route = DebugModalRoute.of(context);
  64. if (route != null) {
  65. routeObserver.subscribe(this, route);
  66. }
  67. debugLogGlobalProperty(context);
  68. }
  69. @override
  70. void didPopNext() {
  71. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  72. setState(() => _model.isRouteVisible = true);
  73. debugLogWidgetClass(_model);
  74. }
  75. }
  76. @override
  77. void didPush() {
  78. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  79. setState(() => _model.isRouteVisible = true);
  80. debugLogWidgetClass(_model);
  81. }
  82. }
  83. @override
  84. void didPop() {
  85. _model.isRouteVisible = false;
  86. }
  87. @override
  88. void didPushNext() {
  89. _model.isRouteVisible = false;
  90. }
  91. @override
  92. Widget build(BuildContext context) {
  93. DebugFlutterFlowModelContext.maybeOf(context)
  94. ?.parentModelCallback
  95. ?.call(_model);
  96. context.watch<FFAppState>();
  97. return FutureBuilder<ApiCallResponse>(
  98. future: EvenementCall.call(
  99. nid: widget!.nid,
  100. ),
  101. builder: (context, snapshot) {
  102. // Customize what your widget looks like when it's loading.
  103. if (!snapshot.hasData) {
  104. return Scaffold(
  105. backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
  106. body: Center(
  107. child: SizedBox(
  108. width: 80.0,
  109. height: 80.0,
  110. child: SpinKitFadingCircle(
  111. color: FlutterFlowTheme.of(context).primary,
  112. size: 80.0,
  113. ),
  114. ),
  115. ),
  116. );
  117. }
  118. final eventCurrentEvenementResponse = snapshot.data!;
  119. _model.debugBackendQueries[
  120. 'EvenementCall_statusCode_Scaffold_vv4pr88m'] = debugSerializeParam(
  121. eventCurrentEvenementResponse.statusCode,
  122. ParamType.int,
  123. link:
  124. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=EventCurrent',
  125. name: 'int',
  126. nullable: false,
  127. );
  128. _model.debugBackendQueries[
  129. 'EvenementCall_responseBody_Scaffold_vv4pr88m'] =
  130. debugSerializeParam(
  131. eventCurrentEvenementResponse.bodyText,
  132. ParamType.String,
  133. link:
  134. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=EventCurrent',
  135. name: 'String',
  136. nullable: false,
  137. );
  138. debugLogWidgetClass(_model);
  139. return GestureDetector(
  140. onTap: () {
  141. FocusScope.of(context).unfocus();
  142. FocusManager.instance.primaryFocus?.unfocus();
  143. },
  144. child: Scaffold(
  145. key: scaffoldKey,
  146. backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
  147. drawer: Drawer(
  148. elevation: 16.0,
  149. child: wrapWithModel(
  150. model: _model.drawerComponentModel,
  151. updateCallback: () => safeSetState(() {}),
  152. child: Builder(builder: (_) {
  153. return DebugFlutterFlowModelContext(
  154. rootModel: _model.rootModel,
  155. child: DrawerComponentWidget(),
  156. );
  157. }),
  158. ),
  159. ),
  160. appBar: PreferredSize(
  161. preferredSize:
  162. Size.fromHeight(MediaQuery.sizeOf(context).height * 0.12),
  163. child: AppBar(
  164. backgroundColor: FlutterFlowTheme.of(context).info,
  165. automaticallyImplyLeading: false,
  166. actions: [],
  167. flexibleSpace: FlexibleSpaceBar(
  168. title: Align(
  169. alignment: AlignmentDirectional(0.0, 0.0),
  170. child: Row(
  171. mainAxisSize: MainAxisSize.max,
  172. children: [
  173. Expanded(
  174. child: wrapWithModel(
  175. model: _model.headerButtonsComponentModel,
  176. updateCallback: () => safeSetState(() {}),
  177. child: Builder(builder: (_) {
  178. return DebugFlutterFlowModelContext(
  179. rootModel: _model.rootModel,
  180. child: HeaderButtonsComponentWidget(),
  181. );
  182. }),
  183. ),
  184. ),
  185. ],
  186. ),
  187. ),
  188. background: Align(
  189. alignment: AlignmentDirectional(0.0, 0.0),
  190. child: Padding(
  191. padding:
  192. EdgeInsetsDirectional.fromSTEB(100.0, 0.0, 15.0, 0.0),
  193. child: ClipRRect(
  194. borderRadius: BorderRadius.circular(8.0),
  195. child: Image.asset(
  196. 'assets/images/logo800px.png',
  197. width: MediaQuery.sizeOf(context).width * 0.7,
  198. fit: BoxFit.fitWidth,
  199. ),
  200. ),
  201. ),
  202. ),
  203. centerTitle: true,
  204. expandedTitleScale: 1.0,
  205. ),
  206. toolbarHeight: MediaQuery.sizeOf(context).height * 0.2,
  207. elevation: 2.0,
  208. ),
  209. ),
  210. body: SafeArea(
  211. top: true,
  212. child: Column(
  213. mainAxisSize: MainAxisSize.max,
  214. children: [
  215. Builder(
  216. builder: (context) {
  217. final fotoos = EvenementCall.eventFotoos(
  218. eventCurrentEvenementResponse.jsonBody,
  219. )?.toList() ??
  220. [];
  221. _model.debugGeneratorVariables[
  222. 'fotoos${fotoos.length > 100 ? ' (first 100)' : ''}'] =
  223. debugSerializeParam(
  224. fotoos.take(100),
  225. ParamType.String,
  226. isList: true,
  227. link:
  228. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=EventCurrent',
  229. name: 'String',
  230. nullable: false,
  231. );
  232. debugLogWidgetClass(_model);
  233. return Container(
  234. width: double.infinity,
  235. height: 200.0,
  236. child: CarouselSlider.builder(
  237. itemCount: fotoos.length,
  238. itemBuilder: (context, fotoosIndex, _) {
  239. final fotoosItem = fotoos[fotoosIndex];
  240. return Builder(
  241. builder: (context) {
  242. if (fotoosItem != null && fotoosItem != '') {
  243. return ClipRRect(
  244. borderRadius: BorderRadius.circular(8.0),
  245. child: OctoImage(
  246. placeholderBuilder: (_) {
  247. final blurHash =
  248. 'L6PZfSi_.AyE_3t7t7R**0o#DgR4';
  249. if (!validateBlurhash(blurHash)) {
  250. return const SizedBox.shrink();
  251. }
  252. return SizedBox.expand(
  253. child: Image(
  254. image: BlurHashImage(blurHash),
  255. fit: BoxFit.cover,
  256. ),
  257. );
  258. },
  259. image: CachedNetworkImageProvider(
  260. fotoosItem,
  261. ),
  262. width: 200.0,
  263. height: 200.0,
  264. fit: BoxFit.cover,
  265. ),
  266. );
  267. } else {
  268. return Icon(
  269. Icons.image_not_supported,
  270. color: FlutterFlowTheme.of(context)
  271. .primaryText,
  272. size: 24.0,
  273. );
  274. }
  275. },
  276. );
  277. },
  278. carouselController: _model.carouselController ??=
  279. CarouselSliderController(),
  280. options: CarouselOptions(
  281. initialPage: max(0, min(1, fotoos.length - 1)),
  282. viewportFraction: 0.5,
  283. disableCenter: true,
  284. enlargeCenterPage: true,
  285. enlargeFactor: 0.25,
  286. enableInfiniteScroll: true,
  287. scrollDirection: Axis.horizontal,
  288. autoPlay: false,
  289. onPageChanged: (index, _) =>
  290. _model.carouselCurrentIndex = index,
  291. ),
  292. ),
  293. );
  294. },
  295. ),
  296. Row(
  297. mainAxisSize: MainAxisSize.max,
  298. mainAxisAlignment: MainAxisAlignment.center,
  299. children: [
  300. if (getJsonField(
  301. eventCurrentEvenementResponse.jsonBody,
  302. r'''$[0].title''',
  303. ) !=
  304. null)
  305. Padding(
  306. padding: EdgeInsetsDirectional.fromSTEB(
  307. 0.0, 0.0, 8.0, 0.0),
  308. child: Text(
  309. valueOrDefault<String>(
  310. EvenementCall.eventTitle(
  311. eventCurrentEvenementResponse.jsonBody,
  312. ),
  313. 'title',
  314. ),
  315. style: FlutterFlowTheme.of(context)
  316. .headlineLarge
  317. .override(
  318. font: GoogleFonts.roboto(
  319. fontWeight: FlutterFlowTheme.of(context)
  320. .headlineLarge
  321. .fontWeight,
  322. fontStyle: FlutterFlowTheme.of(context)
  323. .headlineLarge
  324. .fontStyle,
  325. ),
  326. letterSpacing: 0.0,
  327. fontWeight: FlutterFlowTheme.of(context)
  328. .headlineLarge
  329. .fontWeight,
  330. fontStyle: FlutterFlowTheme.of(context)
  331. .headlineLarge
  332. .fontStyle,
  333. ),
  334. ),
  335. ),
  336. AlignedTooltip(
  337. content: Padding(
  338. padding: EdgeInsets.all(4.0),
  339. child: Text(
  340. FFLocalizations.of(context).getText(
  341. '2cyobro5' /* Delen */,
  342. ),
  343. style:
  344. FlutterFlowTheme.of(context).bodyLarge.override(
  345. font: GoogleFonts.roboto(
  346. fontWeight: FlutterFlowTheme.of(context)
  347. .bodyLarge
  348. .fontWeight,
  349. fontStyle: FlutterFlowTheme.of(context)
  350. .bodyLarge
  351. .fontStyle,
  352. ),
  353. letterSpacing: 0.0,
  354. fontWeight: FlutterFlowTheme.of(context)
  355. .bodyLarge
  356. .fontWeight,
  357. fontStyle: FlutterFlowTheme.of(context)
  358. .bodyLarge
  359. .fontStyle,
  360. ),
  361. ),
  362. ),
  363. offset: 4.0,
  364. preferredDirection: AxisDirection.down,
  365. borderRadius: BorderRadius.circular(8.0),
  366. backgroundColor:
  367. FlutterFlowTheme.of(context).secondaryBackground,
  368. elevation: 4.0,
  369. tailBaseWidth: 24.0,
  370. tailLength: 12.0,
  371. waitDuration: Duration(milliseconds: 100),
  372. showDuration: Duration(milliseconds: 1500),
  373. triggerMode: TooltipTriggerMode.tap,
  374. child: Builder(
  375. builder: (context) => FlutterFlowIconButton(
  376. borderRadius: 8.0,
  377. buttonSize: 40.0,
  378. fillColor: Color(0xFFF265A0),
  379. icon: Icon(
  380. Icons.share,
  381. color: FlutterFlowTheme.of(context).info,
  382. size: 24.0,
  383. ),
  384. onPressed: () async {
  385. await Share.share(
  386. 'https://uitgk.com/${widget!.nid}',
  387. sharePositionOrigin:
  388. getWidgetBoundingBox(context),
  389. );
  390. },
  391. ),
  392. ),
  393. ),
  394. ],
  395. ),
  396. if (getJsonField(
  397. eventCurrentEvenementResponse.jsonBody,
  398. r'''$[0].datum''',
  399. ) !=
  400. null)
  401. Text(
  402. valueOrDefault<String>(
  403. EvenementCall.eventDate(
  404. eventCurrentEvenementResponse.jsonBody,
  405. ),
  406. 'date',
  407. ),
  408. style:
  409. FlutterFlowTheme.of(context).headlineSmall.override(
  410. font: GoogleFonts.roboto(
  411. fontWeight: FlutterFlowTheme.of(context)
  412. .headlineSmall
  413. .fontWeight,
  414. fontStyle: FlutterFlowTheme.of(context)
  415. .headlineSmall
  416. .fontStyle,
  417. ),
  418. letterSpacing: 0.0,
  419. fontWeight: FlutterFlowTheme.of(context)
  420. .headlineSmall
  421. .fontWeight,
  422. fontStyle: FlutterFlowTheme.of(context)
  423. .headlineSmall
  424. .fontStyle,
  425. ),
  426. ),
  427. Padding(
  428. padding:
  429. EdgeInsetsDirectional.fromSTEB(0.0, 15.0, 0.0, 0.0),
  430. child: FlutterFlowAdBanner(
  431. showsTestAd: true,
  432. iOSAdUnitID: 'ca-app-pub-2431417692812232/5511582981',
  433. androidAdUnitID: 'ca-app-pub-2431417692812232/6657143691',
  434. ),
  435. ),
  436. Expanded(
  437. child: Row(
  438. mainAxisSize: MainAxisSize.max,
  439. children: [
  440. Material(
  441. color: Colors.transparent,
  442. elevation: 7.0,
  443. child: Container(
  444. decoration: BoxDecoration(
  445. boxShadow: [
  446. BoxShadow(
  447. blurRadius: 4.0,
  448. color: Color(0x33000000),
  449. offset: Offset(
  450. 0.0,
  451. 2.0,
  452. ),
  453. )
  454. ],
  455. gradient: LinearGradient(
  456. colors: [Color(0xFFE51414), Color(0xFFD28039)],
  457. stops: [0.0, 1.0],
  458. begin: AlignmentDirectional(0.0, -1.0),
  459. end: AlignmentDirectional(0, 1.0),
  460. ),
  461. border: Border.all(
  462. width: 2.0,
  463. ),
  464. ),
  465. child: Column(
  466. mainAxisSize: MainAxisSize.max,
  467. children: [
  468. Padding(
  469. padding: EdgeInsetsDirectional.fromSTEB(
  470. 1.0, 3.0, 1.0, 2.0),
  471. child: Builder(
  472. builder: (context) {
  473. final categorie =
  474. EvenementCall.eventCategorie(
  475. eventCurrentEvenementResponse
  476. .jsonBody,
  477. )?.toList() ??
  478. [];
  479. _model.debugGeneratorVariables[
  480. 'categorie${categorie.length > 100 ? ' (first 100)' : ''}'] =
  481. debugSerializeParam(
  482. categorie.take(100),
  483. ParamType.String,
  484. isList: true,
  485. link:
  486. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=EventCurrent',
  487. name: 'String',
  488. nullable: false,
  489. );
  490. debugLogWidgetClass(_model);
  491. return Wrap(
  492. spacing: 0.0,
  493. runSpacing: 0.0,
  494. alignment: WrapAlignment.start,
  495. crossAxisAlignment:
  496. WrapCrossAlignment.start,
  497. direction: Axis.horizontal,
  498. runAlignment: WrapAlignment.start,
  499. verticalDirection:
  500. VerticalDirection.down,
  501. clipBehavior: Clip.none,
  502. children: List.generate(
  503. categorie.length, (categorieIndex) {
  504. final categorieItem =
  505. categorie[categorieIndex];
  506. return Align(
  507. alignment:
  508. AlignmentDirectional(1.0, 0.0),
  509. child: Padding(
  510. padding: EdgeInsetsDirectional
  511. .fromSTEB(4.0, 1.0, 4.0, 1.0),
  512. child: Material(
  513. color: Colors.transparent,
  514. elevation: 3.0,
  515. shape: RoundedRectangleBorder(
  516. borderRadius:
  517. BorderRadius.circular(
  518. 2.0),
  519. ),
  520. child: Container(
  521. decoration: BoxDecoration(
  522. color: Color(0xFF25CC3E),
  523. boxShadow: [
  524. BoxShadow(
  525. blurRadius: 4.0,
  526. color:
  527. Color(0x33000000),
  528. offset: Offset(
  529. 0.0,
  530. 2.0,
  531. ),
  532. )
  533. ],
  534. borderRadius:
  535. BorderRadius.circular(
  536. 2.0),
  537. border: Border.all(
  538. width: 0.5,
  539. ),
  540. ),
  541. child: Padding(
  542. padding:
  543. EdgeInsetsDirectional
  544. .fromSTEB(0.0, 0.0,
  545. 4.0, 0.0),
  546. child: Text(
  547. categorieItem,
  548. style:
  549. FlutterFlowTheme.of(
  550. context)
  551. .titleSmall
  552. .override(
  553. font:
  554. GoogleFonts
  555. .roboto(
  556. fontWeight: FlutterFlowTheme.of(
  557. context)
  558. .titleSmall
  559. .fontWeight,
  560. fontStyle: FlutterFlowTheme.of(
  561. context)
  562. .titleSmall
  563. .fontStyle,
  564. ),
  565. letterSpacing:
  566. 0.0,
  567. fontWeight: FlutterFlowTheme.of(
  568. context)
  569. .titleSmall
  570. .fontWeight,
  571. fontStyle: FlutterFlowTheme.of(
  572. context)
  573. .titleSmall
  574. .fontStyle,
  575. ),
  576. ),
  577. ),
  578. ),
  579. ),
  580. ),
  581. );
  582. }),
  583. );
  584. },
  585. ),
  586. ),
  587. Builder(
  588. builder: (context) {
  589. if (getJsonField(
  590. eventCurrentEvenementResponse
  591. .jsonBody,
  592. r'''$[0].logo''',
  593. ) !=
  594. null) {
  595. return Padding(
  596. padding: EdgeInsetsDirectional.fromSTEB(
  597. 4.0, 2.0, 4.0, 15.0),
  598. child: ClipRRect(
  599. borderRadius:
  600. BorderRadius.circular(8.0),
  601. child: OctoImage(
  602. placeholderBuilder: (_) {
  603. final blurHash =
  604. 'L6PZfSi_.AyE_3t7t7R**0o#DgR4';
  605. if (!validateBlurhash(blurHash)) {
  606. return const SizedBox.shrink();
  607. }
  608. return SizedBox.expand(
  609. child: Image(
  610. image:
  611. BlurHashImage(blurHash),
  612. fit: BoxFit.cover,
  613. ),
  614. );
  615. },
  616. image: CachedNetworkImageProvider(
  617. EvenementCall.eventLogog(
  618. eventCurrentEvenementResponse
  619. .jsonBody,
  620. )!,
  621. ),
  622. width: MediaQuery.sizeOf(context)
  623. .width *
  624. 0.15,
  625. height: MediaQuery.sizeOf(context)
  626. .height *
  627. 0.15,
  628. fit: BoxFit.cover,
  629. ),
  630. ),
  631. );
  632. } else {
  633. return Icon(
  634. Icons.image_not_supported,
  635. color: FlutterFlowTheme.of(context)
  636. .primaryText,
  637. size: 24.0,
  638. );
  639. }
  640. },
  641. ),
  642. Expanded(
  643. child: wrapWithModel(
  644. model: _model.evenementInfoModel,
  645. updateCallback: () => safeSetState(() {}),
  646. child: Builder(builder: (_) {
  647. return DebugFlutterFlowModelContext(
  648. rootModel: _model.rootModel,
  649. child: EvenementInfoWidget(
  650. nid: EvenementCall.eventNid(
  651. eventCurrentEvenementResponse
  652. .jsonBody,
  653. ),
  654. title: EvenementCall.eventTitle(
  655. eventCurrentEvenementResponse
  656. .jsonBody,
  657. ),
  658. date: EvenementCall.eventDate(
  659. eventCurrentEvenementResponse
  660. .jsonBody,
  661. ),
  662. adres: EvenementCall.eventAdres(
  663. eventCurrentEvenementResponse
  664. .jsonBody,
  665. ),
  666. plaats: EvenementCall.eventPlaats(
  667. eventCurrentEvenementResponse
  668. .jsonBody,
  669. ),
  670. entreetoelichting: EvenementCall
  671. .eventEntreeToelichting(
  672. eventCurrentEvenementResponse
  673. .jsonBody,
  674. ),
  675. entreeprijs:
  676. EvenementCall.eventEntreeprijs(
  677. eventCurrentEvenementResponse
  678. .jsonBody,
  679. ),
  680. website: EvenementCall.eventWebsiteg(
  681. eventCurrentEvenementResponse
  682. .jsonBody,
  683. ),
  684. contact: EvenementCall.eventContact(
  685. eventCurrentEvenementResponse
  686. .jsonBody,
  687. ),
  688. logo: EvenementCall.eventLogog(
  689. eventCurrentEvenementResponse
  690. .jsonBody,
  691. ),
  692. fotoos: EvenementCall.eventFotoos(
  693. eventCurrentEvenementResponse
  694. .jsonBody,
  695. ),
  696. categories:
  697. EvenementCall.eventCategorie(
  698. eventCurrentEvenementResponse
  699. .jsonBody,
  700. ),
  701. ),
  702. );
  703. }),
  704. ),
  705. ),
  706. wrapWithModel(
  707. model: _model.googleMapsIconButtonModel,
  708. updateCallback: () => safeSetState(() {}),
  709. child: Builder(builder: (_) {
  710. return DebugFlutterFlowModelContext(
  711. rootModel: _model.rootModel,
  712. child: GoogleMapsIconButtonWidget(
  713. adres: EvenementCall.eventAdres(
  714. eventCurrentEvenementResponse
  715. .jsonBody,
  716. )!,
  717. plaats: EvenementCall.eventPlaats(
  718. eventCurrentEvenementResponse
  719. .jsonBody,
  720. )!,
  721. ),
  722. );
  723. }),
  724. ),
  725. ],
  726. ),
  727. ),
  728. ),
  729. SingleChildScrollView(
  730. child: Column(
  731. mainAxisSize: MainAxisSize.max,
  732. children: [
  733. Container(
  734. width: MediaQuery.sizeOf(context).width * 0.6,
  735. decoration: BoxDecoration(
  736. color: FlutterFlowTheme.of(context).alternate,
  737. boxShadow: [
  738. BoxShadow(
  739. blurRadius: 4.0,
  740. color: Color(0x33000000),
  741. offset: Offset(
  742. 4.0,
  743. 2.0,
  744. ),
  745. )
  746. ],
  747. borderRadius: BorderRadius.circular(4.0),
  748. border: Border.all(
  749. color: Colors.black,
  750. ),
  751. ),
  752. child: wrapWithModel(
  753. model: _model.evenementV2HTMLComponentModel,
  754. updateCallback: () => safeSetState(() {}),
  755. child: Builder(builder: (_) {
  756. return DebugFlutterFlowModelContext(
  757. rootModel: _model.rootModel,
  758. child: EvenementV2HTMLComponentWidget(
  759. body: EvenementCall.eventBody(
  760. eventCurrentEvenementResponse
  761. .jsonBody,
  762. ),
  763. ),
  764. );
  765. }),
  766. ),
  767. ),
  768. ],
  769. ),
  770. ),
  771. ],
  772. ),
  773. ),
  774. if (widget!.horecaid != null && widget!.horecaid != '')
  775. Expanded(
  776. child: wrapWithModel(
  777. model: _model.evenementHorecagelegenheidModel,
  778. updateCallback: () => safeSetState(() {}),
  779. child: Builder(builder: (_) {
  780. return DebugFlutterFlowModelContext(
  781. rootModel: _model.rootModel,
  782. child: EvenementHorecagelegenheidWidget(
  783. establishmentID: widget!.horecaid!,
  784. ),
  785. );
  786. }),
  787. ),
  788. ),
  789. FFButtonWidget(
  790. onPressed: () async {
  791. context.pushNamed(
  792. PUitgaanPageWidget.routeName,
  793. queryParameters: {
  794. 'plaats': serializeParam(
  795. FFAppState().gemeenteSelectId,
  796. ParamType.String,
  797. ),
  798. 'services': serializeParam(
  799. 'services_1',
  800. ParamType.String,
  801. ),
  802. }.withoutNulls,
  803. );
  804. },
  805. text: FFLocalizations.of(context).getText(
  806. '89l5y9jd' /* Alle evenementen */,
  807. ),
  808. options: FFButtonOptions(
  809. height: 40.0,
  810. padding:
  811. EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 16.0, 0.0),
  812. iconPadding:
  813. EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
  814. color: FlutterFlowTheme.of(context).secondary,
  815. textStyle:
  816. FlutterFlowTheme.of(context).titleSmall.override(
  817. font: GoogleFonts.roboto(
  818. fontWeight: FlutterFlowTheme.of(context)
  819. .titleSmall
  820. .fontWeight,
  821. fontStyle: FlutterFlowTheme.of(context)
  822. .titleSmall
  823. .fontStyle,
  824. ),
  825. color: Colors.white,
  826. letterSpacing: 0.0,
  827. fontWeight: FlutterFlowTheme.of(context)
  828. .titleSmall
  829. .fontWeight,
  830. fontStyle: FlutterFlowTheme.of(context)
  831. .titleSmall
  832. .fontStyle,
  833. ),
  834. elevation: 0.0,
  835. borderRadius: BorderRadius.circular(8.0),
  836. ),
  837. ),
  838. ],
  839. ),
  840. ),
  841. ),
  842. );
  843. },
  844. );
  845. }
  846. }