import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/classes/consts.dart'; import 'package:mohem_flutter_app/classes/decorations_helper.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/models/marathon/marathon_model.dart'; import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; import 'package:provider/provider.dart'; class MarathonDetailsCard extends StatelessWidget { final MarathonDetailModel marathonDetailModel; const MarathonDetailsCard({Key? key, required this.marathonDetailModel}) : super(key: key); @override Widget build(BuildContext context) { return Container( width: double.infinity, decoration: MyDecorations.shadowDecoration, padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 14), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ context.read().isUpComingMarathon ? const SizedBox() : Row( mainAxisAlignment: MainAxisAlignment.end, children: [ Container( decoration: BoxDecoration(color: MyColors.yellowColorII, borderRadius: BorderRadius.circular(100)), child: LocaleKeys.demo.tr().toText10(color: MyColors.white).paddingAll(4), ), ], ), 7.height, LocaleKeys.contestTopicAbout.tr().toText16(color: MyColors.grey77Color), "${AppState().isArabic(context) ? marathonDetailModel.titleAr : marathonDetailModel.titleEn}".toText20(color: MyColors.textMixColor, isBold: true), Row( children: [ Flexible( child: "${AppState().isArabic(context) ? marathonDetailModel.descAr : marathonDetailModel.descEn}".toText14(color: MyColors.grey77Color), ) ], ), if (marathonDetailModel.sponsors != null && marathonDetailModel.sponsors!.isNotEmpty) ...[ 5.height, marathonDetailModel.sponsors!.first.sponsorPrizes != null ? Row( children: [ "${LocaleKeys.prize.tr()} ".toText16(color: MyColors.grey77Color, isBold: true), Expanded( child: SizedBox( height: 30, child: ListView.builder( scrollDirection: Axis.horizontal, shrinkWrap: true, itemCount: marathonDetailModel.sponsors!.first.sponsorPrizes!.length, itemBuilder: (BuildContext context, int index) { SponsorPrizes prizes = marathonDetailModel.sponsors!.first.sponsorPrizes![index]; return Container( decoration: BoxDecoration(color: MyColors.backgroundColor, borderRadius: BorderRadius.circular(100), border: Border.all(color: MyColors.grey57Color.withOpacity(0.1))), child: "${AppState().isArabic(context) ? prizes.marathonPrizeAr : prizes.marathonPrizeEn}" .toText16(color: MyColors.greenColor, isBold: true) .paddingOnly(left: 5, right: 5), ).paddingOnly(left: 5); }), ), ) ], ) : const SizedBox(), Row( children: [ "${LocaleKeys.sponsoredBy.tr()} ".toText16(color: MyColors.grey77Color), "${AppState().isArabic(context) ? marathonDetailModel.sponsors?.first.nameAr : marathonDetailModel.sponsors?.first.nameEn}".toText16(color: MyColors.darkTextColor, isBold: true), ], ), 10.height, Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Image.network( ApiConsts.marathonBaseUrlServices + marathonDetailModel.sponsors!.first.logo!, height: 50, width: 150, fit: BoxFit.contain, errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) { return Image.asset("assets/images/logos/main_mohemm_logo.png", height: 50, width: 150); }, ) ], ), ] ], ), ); } }