import 'package:carousel_slider/carousel_slider.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/lacum-viewmodel.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/borderedButton.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:flutter/material.dart'; class LakumBannerWidget extends StatefulWidget { final LacumViewModel model; final MediaQueryData mediaQuery; final bool isLacumHomePage; LakumBannerWidget(this.model, this.mediaQuery, this.isLacumHomePage); @override _LakumBannerWidgetState createState() => _LakumBannerWidgetState(); } class _LakumBannerWidgetState extends State { int _current = 0; @override Widget build(BuildContext context) { return Container( child: Stack( children: [ CarouselSlider( options: CarouselOptions( enableInfiniteScroll: false, enlargeCenterPage: false, viewportFraction: 1.0, scrollPhysics: widget.isLacumHomePage ? ScrollPhysics() : NeverScrollableScrollPhysics(), initialPage: 0, onPageChanged: (index, reason) { setState(() { _current = index; }); }, ), items: [ Container( decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(4), border: Border.fromBorderSide(BorderSide( color: Colors.grey, width: 0.4, )), ), margin: EdgeInsets.symmetric(horizontal: 16), child: Stack( children: [ Image.asset( "assets/images/pharmacy_module/lakum/lakum_card_front_bg.png", fit: BoxFit.fill, width: widget.mediaQuery.size.width * 1.0, height: widget.mediaQuery.size.width * 1.0, ), Container( margin: EdgeInsets.fromLTRB(12, 70, 12, 4), child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts( widget.model.lacumGroupInformation.lakumInquiryInformationObjVersion.memberName, fontSize: 14, fontWeight: FontWeight.bold, color: Colors.black, ), Texts( "${widget.model.lacumInformation.yahalaAccountNo}", fontSize: 16, fontWeight: FontWeight.normal, color: Colors.black, ), ], ), BorderedButton( widget.model.lacumGroupInformation.lakumInquiryInformationObjVersion.accountStatus == "Active" ? TranslationBase.of(context).active : TranslationBase.of(context).inactive, textColor: widget.model.lacumInformation .accountStatus == 1 ? Colors.green : Colors.red, hasBorder: true, borderColor: widget.model.lacumInformation .accountStatus == 1 ? Colors.green : Colors.red, radius: 16, rPadding: 16, icon: widget.model.lacumInformation .accountStatus == 1 ? Icon( Icons.check_circle, size: 25, color: Colors.green, ) : Image.asset( "assets/images/pharmacy_module/lakum/inactive_cross.png", fit: BoxFit.fill, width: 25, height: 25, ), ), ], ), SizedBox( height: 10, ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts( "IDENTIFICATION #", fontSize: 14, fontWeight: FontWeight.bold, color: Colors.black, ), Texts( widget.model.lacumInformation .identificationNo, fontSize: 16, fontWeight: FontWeight.normal, color: Colors.black, ), ], ), Column( crossAxisAlignment: CrossAxisAlignment.end, children: [ Texts( "MEMBER SINCE", fontSize: 14, fontWeight: FontWeight.bold, color: Colors.black, ), Texts( widget.model.formatCreatedDateToString(), fontSize: 16, fontWeight: FontWeight.normal, color: Colors.black, ), ], ), ], ), SizedBox( height: 10, ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts( "MOBILE #", fontSize: 14, fontWeight: FontWeight.bold, color: Colors.black, ), Texts( widget.model.lacumGroupInformation.lakumInquiryInformationObjVersion.mobileNumber, fontSize: 16, fontWeight: FontWeight.normal, color: Colors.black, ), ], ), Column( crossAxisAlignment: CrossAxisAlignment.end, children: [ Texts( TranslationBase.of(context).language, fontSize: 14, fontWeight: FontWeight.bold, color: Colors.black, ), Texts( widget.model.lacumInformation.prefLang == "1" ? TranslationBase.of(context).lanEnglish : TranslationBase.of(context).lanArabic, fontSize: 16, fontWeight: FontWeight.normal, color: Colors.black, ), ], ), ], ), ], ), ), ], ), ), widget.isLacumHomePage ? Container( decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(4), border: Border.fromBorderSide(BorderSide( color: Colors.grey, width: 0.4, )), ), margin: EdgeInsets.symmetric(horizontal: 16), child: Stack( children: [ Image.asset( "assets/images/pharmacy_module/lakum/lakum_card_front_bg.png", fit: BoxFit.fill, width: widget.mediaQuery.size.width * 1.0, height: widget.mediaQuery.size.width * 1.0, ), Container( margin: EdgeInsets.fromLTRB(12, 70, 12, 4), child: widget.model.convertBase64ToBarCodeImage() != null ? Image.memory( widget.model.convertBase64ToBarCodeImage()) : Container(), ), ], ), ) : Container(), ], ), widget.isLacumHomePage ? Positioned( bottom: 1, left: 1, right: 1, child: Padding( padding: const EdgeInsets.symmetric(horizontal: 8.0), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Container( width: _current == 0 ? 12.0 : 8.0, height: 4.0, margin: EdgeInsets.symmetric( vertical: 0.0, horizontal: 2.0), decoration: BoxDecoration( shape: BoxShape.rectangle, color: _current == 0 ? Color(0xff5ab145) : Color.fromRGBO(0, 0, 0, 0.4), ), ), Container( width: _current == 1 ? 12.0 : 8.0, height: 4.0, margin: EdgeInsets.symmetric( vertical: 0.0, horizontal: 2.0), decoration: BoxDecoration( shape: BoxShape.rectangle, color: _current == 1 ? Color(0xff5ab145) : Color.fromRGBO(0, 0, 0, 0.4), ), ), ], ), ), ) : Container(), ], ), ); } }