diff --git a/lib/pages/ContactUs/contact_us_page.dart b/lib/pages/ContactUs/contact_us_page.dart index d301df3e..39557e4e 100644 --- a/lib/pages/ContactUs/contact_us_page.dart +++ b/lib/pages/ContactUs/contact_us_page.dart @@ -12,30 +12,30 @@ class ContactUsPage extends StatefulWidget { } class _ContactUsPageState extends State { - LocationUtils locationUtils; @override void initState() { - locationUtils = - new LocationUtils(isShowConfirmDialog: true, context: context); - WidgetsBinding.instance - .addPostFrameCallback((_) => locationUtils.getCurrentLocation()); + locationUtils = new LocationUtils(isShowConfirmDialog: true, context: context); + WidgetsBinding.instance.addPostFrameCallback((_) => locationUtils.getCurrentLocation()); super.initState(); } + @override Widget build(BuildContext context) { return AppScaffold( isShowAppBar: true, appBarTitle: TranslationBase.of(context).hMGServiceLabel, isShowDecPage: false, + showNewAppBar: true, + showNewAppBarTitle: true, + backgroundColor: Color(0xffF8F8F8), body: Container( margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, @@ -46,16 +46,10 @@ class _ContactUsPageState extends State { text: TranslationBase.of(context).findUs, subText: "", type: 0, - ), ), Expanded( - child: CardCommonContact( - image: 'assets/images/new-design/feedback_icon.png', - text: TranslationBase.of(context).feedback, - subText: "", - type: 1), - + child: CardCommonContact(image: 'assets/images/new-design/feedback_icon.png', text: TranslationBase.of(context).feedback, subText: "", type: 1), ), ], ), @@ -69,12 +63,10 @@ class _ContactUsPageState extends State { text: TranslationBase.of(context).liveChat, subText: TranslationBase.of(context).service, type: 2, - ), ), Expanded( child: Container(), - ), ], ), @@ -84,4 +76,3 @@ class _ContactUsPageState extends State { ); } } - diff --git a/lib/pages/MyAppointments/MyAppointments.dart b/lib/pages/MyAppointments/MyAppointments.dart index 6aec070d..07f10eb5 100644 --- a/lib/pages/MyAppointments/MyAppointments.dart +++ b/lib/pages/MyAppointments/MyAppointments.dart @@ -323,7 +323,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid Container( margin: EdgeInsets.only(top: 10.0), child: Text( - TranslationBase.of(context).noBookedAppo, + _currentPage == 0 ? TranslationBase.of(context).noBookedAppo : (_currentPage == 1 ? TranslationBase.of(context).noConfirmedAppo : TranslationBase.of(context).noArrivedAppo), style: TextStyle( fontSize: 16.0, ), @@ -410,35 +410,42 @@ class _MyAppointmentsState extends State with SingleTickerProvid } Widget myRadioButton(String _label, int _value) { - return Row( - mainAxisSize: MainAxisSize.min, - children: [ - SizedBox( - width: 22, - height: 22, - child: Radio( - value: _value, - activeColor: _value == _currentPage ? Color(0xffD02127) : Color(0xffE8E8E8), - groupValue: _currentPage, - onChanged: (index) { - setState(() { - _currentPage = index; - }); - //_pageController.animateToPage(index, duration: Duration(milliseconds: 250), curve: Curves.easeInOut); - }, + return InkWell( + onTap: () { + setState(() { + _currentPage = _value; + }); + }, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox( + width: 22, + height: 22, + child: Radio( + value: _value, + activeColor: _value == _currentPage ? Color(0xffD02127) : Color(0xffE8E8E8), + groupValue: _currentPage, + onChanged: (index) { + setState(() { + _currentPage = index; + }); + //_pageController.animateToPage(index, duration: Duration(milliseconds: 250), curve: Curves.easeInOut); + }, + ), ), - ), - SizedBox(width: 10), - Text( - _label, - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.w600, - color: Color(0xff575757), - letterSpacing: -0.56, + SizedBox(width: 10), + Text( + _label, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xff575757), + letterSpacing: -0.56, + ), ), - ), - ], + ], + ), ); } } diff --git a/lib/pages/medical/ask_doctor/ask_doctor_home_page.dart b/lib/pages/medical/ask_doctor/ask_doctor_home_page.dart index 902225b1..2de8dc14 100644 --- a/lib/pages/medical/ask_doctor/ask_doctor_home_page.dart +++ b/lib/pages/medical/ask_doctor/ask_doctor_home_page.dart @@ -1,5 +1,6 @@ import 'dart:ui'; +import 'package:diplomaticquarterapp/core/enum/filter_type.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/ask_doctor_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; @@ -7,6 +8,7 @@ import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_h import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_page.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; +import 'package:diplomaticquarterapp/widgets/new_design/my_tab_view.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -19,10 +21,11 @@ class AskDoctorHomPage extends StatefulWidget { _AskDoctorHomPageState createState() => _AskDoctorHomPageState(); } -class _AskDoctorHomPageState extends State - with SingleTickerProviderStateMixin { +class _AskDoctorHomPageState extends State with SingleTickerProviderStateMixin { TabController _tabController; + int filterType = 0; + @override void initState() { super.initState(); @@ -40,83 +43,34 @@ class _AskDoctorHomPageState extends State return AppScaffold( isShowAppBar: true, appBarTitle: TranslationBase.of(context).askDoctor, - body: Scaffold( - extendBodyBehindAppBar: true, - appBar: PreferredSize( - preferredSize: Size.fromHeight(65.0), - child: Stack( - children: [ - Positioned( - bottom: 1, - left: 0, - right: 0, - child: BackdropFilter( - filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10), - child: Container( - color: Theme.of(context) - .scaffoldBackgroundColor - .withOpacity(0.8), - height: 70.0, - ), - ), - ), - Center( - child: Container( - height: 60.0, - margin: EdgeInsets.only(top: 10.0), - width: MediaQuery.of(context).size.width * 0.9, - decoration: BoxDecoration( - border: Border( - bottom: BorderSide( - color: Theme.of(context).dividerColor, - width: 0.9), - ), - color: Colors.white), - child: Center( - child: TabBar( - isScrollable: true, - controller: _tabController, - indicatorWeight: 5.0, - labelColor: Theme.of(context).primaryColor, - labelPadding: EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0), - unselectedLabelColor: Colors.grey[800], - tabs: [ - Tab( - child: Container( - width: MediaQuery.of(context).size.width * 0.36, - child: Center( - child: Texts(TranslationBase.of(context).askDoctor), - ), - ), - ), - Tab(child: Container( - width: MediaQuery.of(context).size.width * 0.36, - child: Center( - child: Texts(TranslationBase.of(context).doctorResponses,textAlign: TextAlign.start,), - ), - ),) - ], - ), - ), - ), - ), + showNewAppBar: true, + showNewAppBarTitle: true, + backgroundColor: Color(0xffF8F8F8), + body: Column( + children: [ + Row( + children: [ + MyTabView(TranslationBase.of(context).askDoctor, FilterType.Clinic, filterType == 0 ? FilterType.Clinic : FilterType.Hospital, () { + if (filterType != 0) + setState(() { + filterType = 0; + }); + }), + MyTabView(TranslationBase.of(context).doctorResponses, FilterType.Hospital, filterType != 0 ? FilterType.Hospital : FilterType.Clinic, () { + if (filterType == 0) + setState(() { + filterType = 1; + }); + }), ], ), - ), - body: Column( - children: [ - Expanded( - child: TabBarView( - physics: BouncingScrollPhysics(), - controller: _tabController, - children: [ - AskDoctorPage(), - DoctorResponse() - ], - ), - ) - ], - ), + Expanded( + child: IndexedStack( + index: filterType, + children: [AskDoctorPage(), DoctorResponse()], + ), + ) + ], ), ); } diff --git a/lib/pages/medical/ask_doctor/ask_doctor_page.dart b/lib/pages/medical/ask_doctor/ask_doctor_page.dart index 795d1869..df425e0f 100644 --- a/lib/pages/medical/ask_doctor/ask_doctor_page.dart +++ b/lib/pages/medical/ask_doctor/ask_doctor_page.dart @@ -20,191 +20,61 @@ class AskDoctorPage extends StatelessWidget { onModelReady: (model) => model.getMyDoctor(), builder: (_, model, w) => AppScaffold( baseViewModel: model, - body: SingleChildScrollView( - child: Container( - margin: EdgeInsets.all(10), - child: Column( - children: [ - SizedBox( - height: 70, - ), - ...List.generate( - model.patientDoctorAppointmentListHospital.length, - (index) => AppExpandableNotifier( - title: - model.patientDoctorAppointmentListHospital[index].filterName, - bodyWidget: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: - model.patientDoctorAppointmentListHospital[index].patientDoctorAppointmentList.map((doctor) { - return InkWell( - onTap: () { - model - .getCallInfoHoursResult( - doctorId: doctor.doctorID, - projectId: doctor.projectID) - .then((value) { - if (model.state != ViewState.ErrorLocal && - model.state != ViewState.Error) { - // Navigator.pop(context); - Navigator.push( - context, - FadePage( - page: RequestTypePage(doctorList: doctor,), - ), - ); - } else { - AppToast.showErrorToast(message: model.error); - } - }); - - ///.showProgressBar( - // text: "Loading", - // backgroundColor: - // Colors.blue.withOpacity(0.6)) - }, - child: Card( - margin: - EdgeInsets.fromLTRB(10.0, 16.0, 10.0, 8.0), - color: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10), - ), - child: Container( - decoration: BoxDecoration(), - padding: EdgeInsets.all(7.0), - width: MediaQuery.of(context).size.width, - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Expanded( - flex: 1, - child: ClipRRect( - borderRadius: - BorderRadius.circular(100.0), - child: Image.network( - doctor.doctorImageURL, - fit: BoxFit.fill, - height: 60.0, - width: 60.0), - ), - ), - Expanded( - flex: 4, - child: Container( - width: - MediaQuery.of(context).size.width * - 0.55, - margin: EdgeInsets.fromLTRB( - 20.0, 10.0, 10.0, 0.0), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - if (doctor.doctorTitle != null) - Text( - doctor.doctorTitle + - " " + - doctor.name, - style: TextStyle( - fontSize: 14.0, - color: Colors.grey[700], - letterSpacing: 1.0)), - Container( - margin: EdgeInsets.only(top: 3.0), - child: Text(doctor.clinicName, - style: TextStyle( - fontSize: 12.0, - color: Colors.grey[600], - letterSpacing: 1.0)), - ), - Container( - margin: EdgeInsets.only(top: 3.0), - child: Text(doctor.projectName, - style: TextStyle( - fontSize: 12.0, - color: Colors.grey[600], - letterSpacing: 1.0)), - ), - if (doctor.speciality != null) - Container( - margin: EdgeInsets.only( - top: 3.0, bottom: 3.0), - child: Text( - getDoctorSpeciality( - doctor.speciality) - .trim(), - style: TextStyle( - fontSize: 12.0, - color: Colors.grey[600], - letterSpacing: 1.0)), - ), - doctor.nearestFreeSlot != null - ? Container( - margin: EdgeInsets.only( - top: 3.0, bottom: 3.0), - child: Text( - getDate(doctor - .nearestFreeSlot), - style: TextStyle( - fontSize: 14.0, - fontWeight: - FontWeight.bold, - color: Colors - .green[600], - letterSpacing: - 1.0)), - ) - : Container(), - Row( - mainAxisAlignment: - MainAxisAlignment - .spaceBetween, - mainAxisSize: MainAxisSize.max, - children: [ - RatingBar.readOnly( - initialRating: doctor - .actualDoctorRate - .toDouble(), - size: 20.0, - filledColor: - Colors.yellow[700], - emptyColor: Colors.grey[500], - isHalfAllowed: true, - halfFilledIcon: - Icons.star_half, - filledIcon: Icons.star, - emptyIcon: Icons.star, - ), - Container( - child: Image.network( - doctor.nationalityFlagURL, - width: 25.0, - height: 25.0), - ), - ], - ), - ], - ), - ), - ), - ], - ), - ), - ), - ); - }).toList(), - )), - ) - ], - ), - ), - ), + body: _appointmentExpandableList(model.patientDoctorAppointmentListHospital), ), ); } + Widget _appointmentExpandableList(List _patientDoctorAppointmentList) { + return ListView.separated( + physics: BouncingScrollPhysics(), + padding: EdgeInsets.only(top: 12), + separatorBuilder: (context, index) { + return Container( + height: 1, + margin: EdgeInsets.only(left: 21, right: 21), + color: Color(0xffD9D9D9), + ); + }, + itemBuilder: (context, index) { + List _doctorList = _patientDoctorAppointmentList[index].patientDoctorAppointmentList; + return AppExpandableNotifier( + title: _patientDoctorAppointmentList[index].filterName, + bodyWidget: ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + padding: EdgeInsets.only(bottom: 14, top: 14, left: 21, right: 21), + itemBuilder: (context, _index) { + DoctorList _doctor = _doctorList[_index]; + DoctorList doctorList = DoctorList( + projectID: _doctor.projectID, + setupID: _doctor.setupID, + clinicID: _doctor.clinicID, + projectName: _doctor.projectName, + clinicName: _doctor.clinicName, + actualDoctorRate: _doctor.actualDoctorRate, + doctorID: _doctor.doctorID, + doctorRate: _doctor.doctorRate, + gender: _doctor.gender, + doctorTitle: _doctor.doctorTitle, + name: _doctor.name, + speciality: _doctor.speciality, + doctorImageURL: _doctor.doctorImageURL, + nationalityFlagURL: _doctor.nationalityFlagURL); + return DoctorView( + doctor: doctorList, + isLiveCareAppointment: false, + ); + }, + separatorBuilder: (context, index) => SizedBox(height: 14), + itemCount: _doctorList.length), + ); + }, + itemCount: _patientDoctorAppointmentList.length, + ); + } + + // todo 'sikander' remove this later String getDoctorSpeciality(List docSpecial) { String docSpeciality = ""; docSpecial.forEach((v) { @@ -236,4 +106,3 @@ class AskDoctorPage extends StatelessWidget { } } } - diff --git a/lib/widgets/others/not_auh_page.dart b/lib/widgets/others/not_auh_page.dart index d44bac22..dc383c14 100644 --- a/lib/widgets/others/not_auh_page.dart +++ b/lib/widgets/others/not_auh_page.dart @@ -64,7 +64,7 @@ class _NotAutPageState extends State { style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 23 / 24), ), Text( - widget.description, + widget.description??"", style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56, height: 21 / 14), ), SizedBox(