event_current_widget.dart 41 KB

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