import 'package:diplomaticquarterapp/analytics/google-analytics.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/models/LiveCare/ClinicsServiceTimingsResponse.dart'; import 'package:diplomaticquarterapp/models/LiveCare/LiveCareClinicsListResponse.dart'; import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:provider/provider.dart'; import '../clinic_timings_page.dart'; import 'ClinicTimingsDialog.dart'; // ignore: must_be_immutable class ClinicCard extends StatefulWidget { bool isSelected; final PatientERGetClinicsList patientERGetClinicsList; var languageID; int isOnline; ClinicCard({this.isSelected, this.languageID, this.isOnline, @required this.patientERGetClinicsList}){ } @override _State createState() => _State(); } class _State extends State { ClinicsServiceTimingsResponse clinicsServiceTimingsResponse; @override void initState() { clinicsServiceTimingsResponse = new ClinicsServiceTimingsResponse(); super.initState(); } @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return Container( width: double.infinity, margin: EdgeInsets.fromLTRB(15.0, 0.0, 15.0, 8.0), clipBehavior: Clip.antiAlias, decoration: BoxDecoration( borderRadius: BorderRadius.all( Radius.circular(10.0), ), border: Border.all(width: widget.isSelected ? 3 : 0, color: widget.isSelected ? CustomColors.green : Colors.transparent), boxShadow: [ BoxShadow( color: Color(0xff000000).withOpacity(.05), blurRadius: 27, offset: Offset(0, -3), ), ], color: Colors.transparent, ), child: Container( decoration: BoxDecoration( color: widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor, borderRadius: BorderRadius.all( Radius.circular(6.0), ), ), child: Container( margin: EdgeInsets.only( left: projectViewModel.isArabic ? 0 : widget.isSelected ? 4 : 6, right: projectViewModel.isArabic ? widget.isSelected ? 4 : 6: 0), padding: EdgeInsets.symmetric(vertical: 10, horizontal: 12), decoration: BoxDecoration( color: Colors.white, border: Border.all(color: Colors.white, width: 1), borderRadius: BorderRadius.only( bottomRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0), topRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0), bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0), topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0), ), ), child: Row( children: [ Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( widget.languageID == 'ar' ? widget.patientERGetClinicsList.serviceNameN : widget.patientERGetClinicsList.serviceName, style: TextStyle( fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, ), ), Row( children: [ Container( width: 4, height: 4, decoration: containerRadius( widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor, 100, ), ), mWidth(4), Text( widget.patientERGetClinicsList.isOnline == 1 ? TranslationBase.of(context).onlineTag : TranslationBase.of(context).offlineTag, style: TextStyle( fontSize: 10, fontWeight: FontWeight.w600, color: widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor, letterSpacing: -0.48, ), ), ], ), ], ), ), InkWell( onTap: () => getClinicTimings(widget.patientERGetClinicsList), child: Container( padding: EdgeInsets.only(left: 8,right: 8,top: 4,bottom: 4), decoration: containerRadius(CustomColors.devider, 100), child: Row( children: [ SvgPicture.asset( "assets/images/new-design/ic_schedule.svg", width: 16, height: 16, color: Colors.black, ), mWidth(4), Text( TranslationBase.of(context).schedule, style: TextStyle( fontSize: 11, letterSpacing: -0.44, fontWeight: FontWeight.w600, ), ) ], ), ), ), ], ), ), ), ); } getClinicTimings(PatientERGetClinicsList patientERGetClinicsList) { int languageID = widget.languageID == 'ar' ? 1 : 2; LiveCareService service = new LiveCareService(); GifLoaderDialogUtils.showMyDialog(context); service.getLivecareClinicTiming(patientERGetClinicsList.serviceID, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { clinicsServiceTimingsResponse = ClinicsServiceTimingsResponse.fromJson(res); print(clinicsServiceTimingsResponse.patientERGetClinicsServiceTimingsList.length); navigateTo(context, ClinicTimingsPage( clinicName: patientERGetClinicsList.serviceName, patientERGetClinicsServiceTimingsList: clinicsServiceTimingsResponse.patientERGetClinicsServiceTimingsList, )); // showGeneralDialog( // barrierColor: Colors.black.withOpacity(0.5), // transitionBuilder: (context, a1, a2, widget) { // final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0; // return Transform( // transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0), // child: Opacity( // opacity: a1.value, // child: ClinicTimingsDialog( // clinicName: patientERGetClinicsList.serviceName, // patientERGetClinicsServiceTimingsList: clinicsServiceTimingsResponse.patientERGetClinicsServiceTimingsList, // ), // ), // ); // }, // transitionDuration: Duration(milliseconds: 500), // barrierDismissible: true, // barrierLabel: '', // context: context, // pageBuilder: (context, animation1, animation2) {}); }); } else { AppToast.showErrorToast(message: res['ErrorEndUserMessage']); } }).catchError((err) { GifLoaderDialogUtils.hideDialog(context); print(err); }); locator().liveCare.livecare_clinic_schedule(clinic: patientERGetClinicsList.serviceName); } }