event_current_widget.dart 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889
  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. shadows: [
  334. Shadow(
  335. color: FlutterFlowTheme.of(context)
  336. .secondaryText,
  337. offset: Offset(2.0, 2.0),
  338. blurRadius: 2.0,
  339. )
  340. ],
  341. ),
  342. ),
  343. ),
  344. AlignedTooltip(
  345. content: Padding(
  346. padding: EdgeInsets.all(4.0),
  347. child: Text(
  348. FFLocalizations.of(context).getText(
  349. '2cyobro5' /* Delen */,
  350. ),
  351. style:
  352. FlutterFlowTheme.of(context).bodyLarge.override(
  353. font: GoogleFonts.roboto(
  354. fontWeight: FlutterFlowTheme.of(context)
  355. .bodyLarge
  356. .fontWeight,
  357. fontStyle: FlutterFlowTheme.of(context)
  358. .bodyLarge
  359. .fontStyle,
  360. ),
  361. letterSpacing: 0.0,
  362. fontWeight: FlutterFlowTheme.of(context)
  363. .bodyLarge
  364. .fontWeight,
  365. fontStyle: FlutterFlowTheme.of(context)
  366. .bodyLarge
  367. .fontStyle,
  368. ),
  369. ),
  370. ),
  371. offset: 4.0,
  372. preferredDirection: AxisDirection.down,
  373. borderRadius: BorderRadius.circular(8.0),
  374. backgroundColor:
  375. FlutterFlowTheme.of(context).secondaryBackground,
  376. elevation: 4.0,
  377. tailBaseWidth: 24.0,
  378. tailLength: 12.0,
  379. waitDuration: Duration(milliseconds: 100),
  380. showDuration: Duration(milliseconds: 1500),
  381. triggerMode: TooltipTriggerMode.tap,
  382. child: Builder(
  383. builder: (context) => FlutterFlowIconButton(
  384. borderRadius: 8.0,
  385. buttonSize: 40.0,
  386. fillColor: Color(0xFFF265A0),
  387. icon: Icon(
  388. Icons.share,
  389. color: FlutterFlowTheme.of(context).info,
  390. size: 24.0,
  391. ),
  392. onPressed: () async {
  393. await Share.share(
  394. 'https://uitgk.com/${widget!.nid}',
  395. sharePositionOrigin:
  396. getWidgetBoundingBox(context),
  397. );
  398. },
  399. ),
  400. ),
  401. ),
  402. ],
  403. ),
  404. if (getJsonField(
  405. eventCurrentEvenementResponse.jsonBody,
  406. r'''$[0].datum''',
  407. ) !=
  408. null)
  409. Text(
  410. valueOrDefault<String>(
  411. EvenementCall.eventDate(
  412. eventCurrentEvenementResponse.jsonBody,
  413. ),
  414. 'date',
  415. ),
  416. style:
  417. FlutterFlowTheme.of(context).headlineSmall.override(
  418. font: GoogleFonts.roboto(
  419. fontWeight: FlutterFlowTheme.of(context)
  420. .headlineSmall
  421. .fontWeight,
  422. fontStyle: FlutterFlowTheme.of(context)
  423. .headlineSmall
  424. .fontStyle,
  425. ),
  426. letterSpacing: 0.0,
  427. fontWeight: FlutterFlowTheme.of(context)
  428. .headlineSmall
  429. .fontWeight,
  430. fontStyle: FlutterFlowTheme.of(context)
  431. .headlineSmall
  432. .fontStyle,
  433. ),
  434. ),
  435. Padding(
  436. padding:
  437. EdgeInsetsDirectional.fromSTEB(0.0, 15.0, 0.0, 0.0),
  438. child: FlutterFlowAdBanner(
  439. showsTestAd: true,
  440. iOSAdUnitID: 'ca-app-pub-2431417692812232/5511582981',
  441. androidAdUnitID: 'ca-app-pub-2431417692812232/6657143691',
  442. ),
  443. ),
  444. Expanded(
  445. child: Row(
  446. mainAxisSize: MainAxisSize.max,
  447. children: [
  448. Material(
  449. color: Colors.transparent,
  450. elevation: 7.0,
  451. child: Container(
  452. decoration: BoxDecoration(
  453. boxShadow: [
  454. BoxShadow(
  455. blurRadius: 4.0,
  456. color: Color(0x33000000),
  457. offset: Offset(
  458. 0.0,
  459. 2.0,
  460. ),
  461. )
  462. ],
  463. gradient: LinearGradient(
  464. colors: [Color(0xFFE51414), Color(0xFFD28039)],
  465. stops: [0.0, 1.0],
  466. begin: AlignmentDirectional(0.0, -1.0),
  467. end: AlignmentDirectional(0, 1.0),
  468. ),
  469. border: Border.all(
  470. width: 2.0,
  471. ),
  472. ),
  473. child: Column(
  474. mainAxisSize: MainAxisSize.max,
  475. children: [
  476. Padding(
  477. padding: EdgeInsetsDirectional.fromSTEB(
  478. 1.0, 3.0, 1.0, 2.0),
  479. child: Builder(
  480. builder: (context) {
  481. final categorie =
  482. EvenementCall.eventCategorie(
  483. eventCurrentEvenementResponse
  484. .jsonBody,
  485. )?.toList() ??
  486. [];
  487. _model.debugGeneratorVariables[
  488. 'categorie${categorie.length > 100 ? ' (first 100)' : ''}'] =
  489. debugSerializeParam(
  490. categorie.take(100),
  491. ParamType.String,
  492. isList: true,
  493. link:
  494. 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=EventCurrent',
  495. name: 'String',
  496. nullable: false,
  497. );
  498. debugLogWidgetClass(_model);
  499. return Wrap(
  500. spacing: 0.0,
  501. runSpacing: 0.0,
  502. alignment: WrapAlignment.start,
  503. crossAxisAlignment:
  504. WrapCrossAlignment.start,
  505. direction: Axis.horizontal,
  506. runAlignment: WrapAlignment.start,
  507. verticalDirection:
  508. VerticalDirection.down,
  509. clipBehavior: Clip.none,
  510. children: List.generate(
  511. categorie.length, (categorieIndex) {
  512. final categorieItem =
  513. categorie[categorieIndex];
  514. return Align(
  515. alignment:
  516. AlignmentDirectional(1.0, 0.0),
  517. child: Padding(
  518. padding: EdgeInsetsDirectional
  519. .fromSTEB(4.0, 1.0, 4.0, 1.0),
  520. child: Material(
  521. color: Colors.transparent,
  522. elevation: 3.0,
  523. shape: RoundedRectangleBorder(
  524. borderRadius:
  525. BorderRadius.circular(
  526. 2.0),
  527. ),
  528. child: Container(
  529. decoration: BoxDecoration(
  530. color: Color(0xFF25CC3E),
  531. boxShadow: [
  532. BoxShadow(
  533. blurRadius: 4.0,
  534. color:
  535. Color(0x33000000),
  536. offset: Offset(
  537. 0.0,
  538. 2.0,
  539. ),
  540. )
  541. ],
  542. borderRadius:
  543. BorderRadius.circular(
  544. 2.0),
  545. border: Border.all(
  546. width: 0.5,
  547. ),
  548. ),
  549. child: Padding(
  550. padding:
  551. EdgeInsetsDirectional
  552. .fromSTEB(0.0, 0.0,
  553. 4.0, 0.0),
  554. child: Text(
  555. categorieItem,
  556. style:
  557. FlutterFlowTheme.of(
  558. context)
  559. .titleSmall
  560. .override(
  561. font:
  562. GoogleFonts.roboto(
  563. fontWeight:
  564. FlutterFlowTheme.of(
  565. context)
  566. .titleSmall
  567. .fontWeight,
  568. fontStyle:
  569. FlutterFlowTheme.of(
  570. context)
  571. .titleSmall
  572. .fontStyle,
  573. ),
  574. letterSpacing: 0.0,
  575. fontWeight:
  576. FlutterFlowTheme.of(
  577. context)
  578. .titleSmall
  579. .fontWeight,
  580. fontStyle:
  581. FlutterFlowTheme.of(
  582. context)
  583. .titleSmall
  584. .fontStyle,
  585. shadows: [
  586. Shadow(
  587. color: FlutterFlowTheme
  588. .of(context)
  589. .secondaryText,
  590. offset: Offset(
  591. 2.0, 2.0),
  592. blurRadius: 2.0,
  593. )
  594. ],
  595. ),
  596. ),
  597. ),
  598. ),
  599. ),
  600. ),
  601. );
  602. }),
  603. );
  604. },
  605. ),
  606. ),
  607. Builder(
  608. builder: (context) {
  609. if (getJsonField(
  610. eventCurrentEvenementResponse
  611. .jsonBody,
  612. r'''$[0].logo''',
  613. ) !=
  614. null) {
  615. return Padding(
  616. padding: EdgeInsetsDirectional.fromSTEB(
  617. 4.0, 2.0, 4.0, 15.0),
  618. child: ClipRRect(
  619. borderRadius:
  620. BorderRadius.circular(8.0),
  621. child: OctoImage(
  622. placeholderBuilder: (_) {
  623. final blurHash =
  624. 'L6PZfSi_.AyE_3t7t7R**0o#DgR4';
  625. if (!validateBlurhash(blurHash)) {
  626. return const SizedBox.shrink();
  627. }
  628. return SizedBox.expand(
  629. child: Image(
  630. image:
  631. BlurHashImage(blurHash),
  632. fit: BoxFit.cover,
  633. ),
  634. );
  635. },
  636. image: CachedNetworkImageProvider(
  637. EvenementCall.eventLogog(
  638. eventCurrentEvenementResponse
  639. .jsonBody,
  640. )!,
  641. ),
  642. width: MediaQuery.sizeOf(context)
  643. .width *
  644. 0.15,
  645. height: MediaQuery.sizeOf(context)
  646. .height *
  647. 0.15,
  648. fit: BoxFit.cover,
  649. ),
  650. ),
  651. );
  652. } else {
  653. return Icon(
  654. Icons.image_not_supported,
  655. color: FlutterFlowTheme.of(context)
  656. .primaryText,
  657. size: 24.0,
  658. );
  659. }
  660. },
  661. ),
  662. Expanded(
  663. child: wrapWithModel(
  664. model: _model.evenementInfoModel,
  665. updateCallback: () => safeSetState(() {}),
  666. child: Builder(builder: (_) {
  667. return DebugFlutterFlowModelContext(
  668. rootModel: _model.rootModel,
  669. child: EvenementInfoWidget(
  670. nid: EvenementCall.eventNid(
  671. eventCurrentEvenementResponse
  672. .jsonBody,
  673. ),
  674. title: EvenementCall.eventTitle(
  675. eventCurrentEvenementResponse
  676. .jsonBody,
  677. ),
  678. date: EvenementCall.eventDate(
  679. eventCurrentEvenementResponse
  680. .jsonBody,
  681. ),
  682. adres: EvenementCall.eventAdres(
  683. eventCurrentEvenementResponse
  684. .jsonBody,
  685. ),
  686. plaats: EvenementCall.eventPlaats(
  687. eventCurrentEvenementResponse
  688. .jsonBody,
  689. ),
  690. entreetoelichting: EvenementCall
  691. .eventEntreeToelichting(
  692. eventCurrentEvenementResponse
  693. .jsonBody,
  694. ),
  695. entreeprijs:
  696. EvenementCall.eventEntreeprijs(
  697. eventCurrentEvenementResponse
  698. .jsonBody,
  699. ),
  700. website: EvenementCall.eventWebsiteg(
  701. eventCurrentEvenementResponse
  702. .jsonBody,
  703. ),
  704. contact: EvenementCall.eventContact(
  705. eventCurrentEvenementResponse
  706. .jsonBody,
  707. ),
  708. logo: EvenementCall.eventLogog(
  709. eventCurrentEvenementResponse
  710. .jsonBody,
  711. ),
  712. fotoos: EvenementCall.eventFotoos(
  713. eventCurrentEvenementResponse
  714. .jsonBody,
  715. ),
  716. categories:
  717. EvenementCall.eventCategorie(
  718. eventCurrentEvenementResponse
  719. .jsonBody,
  720. ),
  721. ),
  722. );
  723. }),
  724. ),
  725. ),
  726. wrapWithModel(
  727. model: _model.googleMapsIconButtonModel,
  728. updateCallback: () => safeSetState(() {}),
  729. child: Builder(builder: (_) {
  730. return DebugFlutterFlowModelContext(
  731. rootModel: _model.rootModel,
  732. child: GoogleMapsIconButtonWidget(
  733. adres: EvenementCall.eventAdres(
  734. eventCurrentEvenementResponse
  735. .jsonBody,
  736. )!,
  737. plaats: EvenementCall.eventPlaats(
  738. eventCurrentEvenementResponse
  739. .jsonBody,
  740. )!,
  741. ),
  742. );
  743. }),
  744. ),
  745. ],
  746. ),
  747. ),
  748. ),
  749. SingleChildScrollView(
  750. child: Column(
  751. mainAxisSize: MainAxisSize.max,
  752. children: [
  753. Container(
  754. width: MediaQuery.sizeOf(context).width * 0.6,
  755. decoration: BoxDecoration(
  756. color: FlutterFlowTheme.of(context).alternate,
  757. boxShadow: [
  758. BoxShadow(
  759. blurRadius: 4.0,
  760. color: Color(0x33000000),
  761. offset: Offset(
  762. 4.0,
  763. 2.0,
  764. ),
  765. )
  766. ],
  767. borderRadius: BorderRadius.circular(4.0),
  768. border: Border.all(
  769. color: Colors.black,
  770. ),
  771. ),
  772. child: wrapWithModel(
  773. model: _model.evenementV2HTMLComponentModel,
  774. updateCallback: () => safeSetState(() {}),
  775. child: Builder(builder: (_) {
  776. return DebugFlutterFlowModelContext(
  777. rootModel: _model.rootModel,
  778. child: EvenementV2HTMLComponentWidget(
  779. body: EvenementCall.eventBody(
  780. eventCurrentEvenementResponse
  781. .jsonBody,
  782. ),
  783. ),
  784. );
  785. }),
  786. ),
  787. ),
  788. ],
  789. ),
  790. ),
  791. ],
  792. ),
  793. ),
  794. if (widget!.horecaid != null && widget!.horecaid != '')
  795. Expanded(
  796. child: wrapWithModel(
  797. model: _model.evenementHorecagelegenheidModel,
  798. updateCallback: () => safeSetState(() {}),
  799. child: Builder(builder: (_) {
  800. return DebugFlutterFlowModelContext(
  801. rootModel: _model.rootModel,
  802. child: EvenementHorecagelegenheidWidget(
  803. establishmentID: widget!.horecaid!,
  804. ),
  805. );
  806. }),
  807. ),
  808. ),
  809. FFButtonWidget(
  810. onPressed: () async {
  811. context.pushNamed(
  812. PUitgaanPageWidget.routeName,
  813. queryParameters: {
  814. 'plaats': serializeParam(
  815. FFAppState().gemeenteSelectId,
  816. ParamType.String,
  817. ),
  818. 'services': serializeParam(
  819. 'services_1',
  820. ParamType.String,
  821. ),
  822. }.withoutNulls,
  823. );
  824. },
  825. text: FFLocalizations.of(context).getText(
  826. '89l5y9jd' /* Alle evenementen */,
  827. ),
  828. options: FFButtonOptions(
  829. height: 40.0,
  830. padding:
  831. EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 16.0, 0.0),
  832. iconPadding:
  833. EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
  834. color: FlutterFlowTheme.of(context).secondary,
  835. textStyle:
  836. FlutterFlowTheme.of(context).titleSmall.override(
  837. font: GoogleFonts.roboto(
  838. fontWeight: FlutterFlowTheme.of(context)
  839. .titleSmall
  840. .fontWeight,
  841. fontStyle: FlutterFlowTheme.of(context)
  842. .titleSmall
  843. .fontStyle,
  844. ),
  845. color: Colors.white,
  846. letterSpacing: 0.0,
  847. fontWeight: FlutterFlowTheme.of(context)
  848. .titleSmall
  849. .fontWeight,
  850. fontStyle: FlutterFlowTheme.of(context)
  851. .titleSmall
  852. .fontStyle,
  853. ),
  854. elevation: 0.0,
  855. borderRadius: BorderRadius.circular(8.0),
  856. ),
  857. ),
  858. ],
  859. ),
  860. ),
  861. ),
  862. );
  863. },
  864. );
  865. }
  866. }