| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550 |
- import '/backend/api_requests/api_calls.dart';
- import '/evenement/evenement_horecagelegenheid/evenement_horecagelegenheid_widget.dart';
- import '/flutter_flow/flutter_flow_theme.dart';
- import '/flutter_flow/flutter_flow_util.dart';
- import '/flutter_flow/flutter_flow_widgets.dart';
- import 'dart:ui';
- import '/custom_code/widgets/index.dart' as custom_widgets;
- import 'package:carousel_slider/carousel_slider.dart';
- import 'package:cached_network_image/cached_network_image.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_spinkit/flutter_spinkit.dart';
- import 'package:google_fonts/google_fonts.dart';
- import 'package:provider/provider.dart';
- import 'evenement_component_model.dart';
- export 'evenement_component_model.dart';
- class EvenementComponentWidget extends StatefulWidget {
- const EvenementComponentWidget({
- super.key,
- this.nid,
- });
- final String? nid;
- @override
- State<EvenementComponentWidget> createState() =>
- _EvenementComponentWidgetState();
- }
- class _EvenementComponentWidgetState extends State<EvenementComponentWidget>
- with RouteAware {
- late EvenementComponentModel _model;
- @override
- void setState(VoidCallback callback) {
- super.setState(callback);
- _model.onUpdate();
- }
- @override
- void initState() {
- super.initState();
- _model = createModel(context, () => EvenementComponentModel());
- }
- @override
- void dispose() {
- routeObserver.unsubscribe(this);
- _model.maybeDispose();
- super.dispose();
- }
- @override
- void didUpdateWidget(EvenementComponentWidget oldWidget) {
- super.didUpdateWidget(oldWidget);
- _model.widget = widget;
- }
- @override
- void didChangeDependencies() {
- super.didChangeDependencies();
- final route = DebugModalRoute.of(context);
- if (route != null) {
- routeObserver.subscribe(this, route);
- }
- debugLogGlobalProperty(context);
- }
- @override
- void didPopNext() {
- if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
- setState(() => _model.isRouteVisible = true);
- debugLogWidgetClass(_model);
- }
- }
- @override
- void didPush() {
- if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
- setState(() => _model.isRouteVisible = true);
- debugLogWidgetClass(_model);
- }
- }
- @override
- void didPop() {
- _model.isRouteVisible = false;
- }
- @override
- void didPushNext() {
- _model.isRouteVisible = false;
- }
- @override
- Widget build(BuildContext context) {
- DebugFlutterFlowModelContext.maybeOf(context)
- ?.parentModelCallback
- ?.call(_model);
- return FutureBuilder<ApiCallResponse>(
- future: EvenementCall.call(
- nid: widget!.nid,
- ),
- builder: (context, snapshot) {
- // Customize what your widget looks like when it's loading.
- if (!snapshot.hasData) {
- return Center(
- child: SizedBox(
- width: 80.0,
- height: 80.0,
- child: SpinKitFadingCircle(
- color: FlutterFlowTheme.of(context).primary,
- size: 80.0,
- ),
- ),
- );
- }
- final columnEvenementResponse = snapshot.data!;
- _model.debugBackendQueries['EvenementCall_statusCode_Column_7p7qgpjv'] =
- debugSerializeParam(
- columnEvenementResponse.statusCode,
- ParamType.int,
- link:
- 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=EvenementComponent',
- name: 'int',
- nullable: false,
- );
- _model.debugBackendQueries[
- 'EvenementCall_responseBody_Column_7p7qgpjv'] = debugSerializeParam(
- columnEvenementResponse.bodyText,
- ParamType.String,
- link:
- 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=EvenementComponent',
- name: 'String',
- nullable: false,
- );
- debugLogWidgetClass(_model);
- return Column(
- mainAxisSize: MainAxisSize.min,
- children: [
- Expanded(
- child: Builder(
- builder: (context) {
- final fotoos = EvenementCall.eventFotoos(
- columnEvenementResponse.jsonBody,
- )?.toList() ??
- [];
- if (fotoos.isEmpty) {
- return Image.asset(
- 'assets/images/logo800px.png',
- );
- }
- _model.debugGeneratorVariables[
- 'fotoos${fotoos.length > 100 ? ' (first 100)' : ''}'] =
- debugSerializeParam(
- fotoos.take(100),
- ParamType.String,
- isList: true,
- link:
- 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=EvenementComponent',
- name: 'String',
- nullable: false,
- );
- debugLogWidgetClass(_model);
- return Container(
- width: double.infinity,
- height: 200.0,
- child: CarouselSlider.builder(
- itemCount: fotoos.length,
- itemBuilder: (context, fotoosIndex, _) {
- final fotoosItem = fotoos[fotoosIndex];
- return Builder(
- builder: (context) {
- if (fotoosItem != '') {
- return ClipRRect(
- borderRadius: BorderRadius.circular(8.0),
- child: CachedNetworkImage(
- fadeInDuration: Duration(milliseconds: 500),
- fadeOutDuration: Duration(milliseconds: 500),
- imageUrl: fotoosItem,
- width: 200.0,
- height: 200.0,
- fit: BoxFit.cover,
- ),
- );
- } else {
- return Icon(
- Icons.image_not_supported,
- color: FlutterFlowTheme.of(context).primaryText,
- size: 24.0,
- );
- }
- },
- );
- },
- carouselController: _model.carouselController ??=
- CarouselSliderController(),
- options: CarouselOptions(
- initialPage: max(0, min(1, fotoos.length - 1)),
- viewportFraction: 0.5,
- disableCenter: true,
- enlargeCenterPage: true,
- enlargeFactor: 0.25,
- enableInfiniteScroll: true,
- scrollDirection: Axis.horizontal,
- autoPlay: false,
- onPageChanged: (index, _) =>
- _model.carouselCurrentIndex = index,
- ),
- ),
- );
- },
- ),
- ),
- Text(
- valueOrDefault<String>(
- getJsonField(
- columnEvenementResponse.jsonBody,
- r'''$[0].title''',
- )?.toString(),
- 'title',
- ),
- style: FlutterFlowTheme.of(context).headlineLarge.override(
- font: GoogleFonts.roboto(
- fontWeight:
- FlutterFlowTheme.of(context).headlineLarge.fontWeight,
- fontStyle:
- FlutterFlowTheme.of(context).headlineLarge.fontStyle,
- ),
- letterSpacing: 0.0,
- fontWeight:
- FlutterFlowTheme.of(context).headlineLarge.fontWeight,
- fontStyle:
- FlutterFlowTheme.of(context).headlineLarge.fontStyle,
- ),
- ),
- Text(
- valueOrDefault<String>(
- EvenementCall.eventDate(
- columnEvenementResponse.jsonBody,
- ),
- 'eventDate',
- ),
- style: FlutterFlowTheme.of(context).bodyMedium.override(
- font: GoogleFonts.roboto(
- fontWeight:
- FlutterFlowTheme.of(context).bodyMedium.fontWeight,
- fontStyle:
- FlutterFlowTheme.of(context).bodyMedium.fontStyle,
- ),
- letterSpacing: 0.0,
- fontWeight:
- FlutterFlowTheme.of(context).bodyMedium.fontWeight,
- fontStyle:
- FlutterFlowTheme.of(context).bodyMedium.fontStyle,
- ),
- ),
- Builder(
- builder: (context) {
- final categories = EvenementCall.eventCategorie(
- columnEvenementResponse.jsonBody,
- )?.toList() ??
- [];
- _model.debugGeneratorVariables[
- 'categories${categories.length > 100 ? ' (first 100)' : ''}'] =
- debugSerializeParam(
- categories.take(100),
- ParamType.String,
- isList: true,
- link:
- 'https://app.flutterflow.io/project/uitgaanskrant-1qhvtd?tab=uiBuilder&page=EvenementComponent',
- name: 'String',
- nullable: false,
- );
- debugLogWidgetClass(_model);
- return Row(
- mainAxisSize: MainAxisSize.max,
- children: List.generate(categories.length, (categoriesIndex) {
- final categoriesItem = categories[categoriesIndex];
- return Padding(
- padding:
- EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 8.0, 0.0),
- child: Text(
- categoriesItem,
- style: FlutterFlowTheme.of(context).bodyMedium.override(
- font: GoogleFonts.roboto(
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontStyle,
- ),
- letterSpacing: 0.0,
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontStyle,
- ),
- ),
- );
- }),
- );
- },
- ),
- Column(
- mainAxisSize: MainAxisSize.max,
- children: [
- Text(
- valueOrDefault<String>(
- EvenementCall.eventAdres(
- columnEvenementResponse.jsonBody,
- ),
- 'adres',
- ),
- style: FlutterFlowTheme.of(context).bodyMedium.override(
- font: GoogleFonts.roboto(
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle:
- FlutterFlowTheme.of(context).bodyMedium.fontStyle,
- ),
- letterSpacing: 0.0,
- fontWeight:
- FlutterFlowTheme.of(context).bodyMedium.fontWeight,
- fontStyle:
- FlutterFlowTheme.of(context).bodyMedium.fontStyle,
- ),
- ),
- Text(
- valueOrDefault<String>(
- EvenementCall.eventPlaats(
- columnEvenementResponse.jsonBody,
- ),
- 'plaats',
- ),
- style: FlutterFlowTheme.of(context).bodyMedium.override(
- font: GoogleFonts.roboto(
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle:
- FlutterFlowTheme.of(context).bodyMedium.fontStyle,
- ),
- letterSpacing: 0.0,
- fontWeight:
- FlutterFlowTheme.of(context).bodyMedium.fontWeight,
- fontStyle:
- FlutterFlowTheme.of(context).bodyMedium.fontStyle,
- ),
- ),
- Row(
- mainAxisSize: MainAxisSize.max,
- children: [
- Text(
- FFLocalizations.of(context).getText(
- 'nghx1743' /* entreetoelichting */,
- ),
- style: FlutterFlowTheme.of(context).bodyMedium.override(
- font: GoogleFonts.roboto(
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontStyle,
- ),
- letterSpacing: 0.0,
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontStyle,
- ),
- ),
- Text(
- FFLocalizations.of(context).getText(
- 'y02m0qh0' /* 15 euro */,
- ),
- style: FlutterFlowTheme.of(context).bodyMedium.override(
- font: GoogleFonts.roboto(
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontStyle,
- ),
- letterSpacing: 0.0,
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontStyle,
- ),
- ),
- if (EvenementCall.eventWebsiteg(
- columnEvenementResponse.jsonBody,
- ) !=
- null &&
- EvenementCall.eventWebsiteg(
- columnEvenementResponse.jsonBody,
- ) !=
- '')
- InkWell(
- splashColor: Colors.transparent,
- focusColor: Colors.transparent,
- hoverColor: Colors.transparent,
- highlightColor: Colors.transparent,
- onTap: () async {
- await launchURL(EvenementCall.eventWebsiteg(
- columnEvenementResponse.jsonBody,
- )!);
- },
- child: Text(
- valueOrDefault<String>(
- EvenementCall.eventWebsiteg(
- columnEvenementResponse.jsonBody,
- ),
- 'website',
- ),
- style:
- FlutterFlowTheme.of(context).bodyMedium.override(
- font: GoogleFonts.roboto(
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontStyle,
- ),
- letterSpacing: 0.0,
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontStyle,
- ),
- ),
- ),
- Text(
- FFLocalizations.of(context).getText(
- 'lrjms1by' /* Contactveld */,
- ),
- style: FlutterFlowTheme.of(context).bodyMedium.override(
- font: GoogleFonts.roboto(
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontStyle,
- ),
- letterSpacing: 0.0,
- fontWeight: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontWeight,
- fontStyle: FlutterFlowTheme.of(context)
- .bodyMedium
- .fontStyle,
- ),
- ),
- ],
- ),
- Wrap(
- spacing: 0.0,
- runSpacing: 0.0,
- alignment: WrapAlignment.start,
- crossAxisAlignment: WrapCrossAlignment.start,
- direction: Axis.horizontal,
- runAlignment: WrapAlignment.start,
- verticalDirection: VerticalDirection.down,
- clipBehavior: Clip.none,
- children: [
- Builder(
- builder: (context) {
- if (getJsonField(
- columnEvenementResponse.jsonBody,
- r'''$[0].logo''',
- ) !=
- null) {
- return ClipRRect(
- borderRadius: BorderRadius.circular(8.0),
- child: CachedNetworkImage(
- fadeInDuration: Duration(milliseconds: 500),
- fadeOutDuration: Duration(milliseconds: 500),
- imageUrl: EvenementCall.eventLogog(
- columnEvenementResponse.jsonBody,
- )!,
- width: 40.0,
- height: 40.0,
- fit: BoxFit.cover,
- ),
- );
- } else {
- return Icon(
- Icons.image_not_supported,
- color: FlutterFlowTheme.of(context).primaryText,
- size: 24.0,
- );
- }
- },
- ),
- Container(
- width: MediaQuery.sizeOf(context).width * 0.4,
- height: MediaQuery.sizeOf(context).height * 0.4,
- child: custom_widgets.FromHTML(
- width: MediaQuery.sizeOf(context).width * 0.4,
- height: MediaQuery.sizeOf(context).height * 0.4,
- HTMLParameter: EvenementCall.eventBody(
- columnEvenementResponse.jsonBody,
- )!,
- ),
- ),
- ],
- ),
- ],
- ),
- Expanded(
- child: wrapWithModel(
- model: _model.evenementHorecagelegenheidModel,
- updateCallback: () => safeSetState(() {}),
- child: Builder(builder: (_) {
- return DebugFlutterFlowModelContext(
- rootModel: _model.rootModel,
- child: EvenementHorecagelegenheidWidget(
- establishmentID: widget!.nid!,
- ),
- );
- }),
- ),
- ),
- ],
- );
- },
- );
- }
- }
|