diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index f8001fae..608c67f0 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1495,4 +1495,6 @@ const Map localizedValues = { "noSlotsError": {"en": "No appointments available for selected date", "ar": "لا توجد مواعيد متاحة للتاريخ المحدد"}, "selectSlot": {"en": "Please select Time Slot to continue", "ar": "الرجاء تحديد فترة زمنية للمتابعة"}, "years": {"en": "Years", "ar": "سنوات"}, + "respirationBPM": { "en": "bpm", "ar": "نفس" }, + "extremeObese": {"en": "Extreme Obese", "ar": "السمنة المفرطة"}, }; diff --git a/lib/core/model/er/PatientER_RC.dart b/lib/core/model/er/PatientER_RC.dart index f5afc1d6..ec564128 100644 --- a/lib/core/model/er/PatientER_RC.dart +++ b/lib/core/model/er/PatientER_RC.dart @@ -103,6 +103,7 @@ class TransportationDetails { String pickupDateTime; String transportationType; int ambulate; + String ambulateTitle; String notes; int requesterFileNo; String requesterMobileNo; @@ -128,6 +129,7 @@ class TransportationDetails { this.pickupDateTime, this.transportationType, this.ambulate, + this.ambulateTitle, this.notes, this.requesterFileNo, this.requesterMobileNo, @@ -153,6 +155,7 @@ class TransportationDetails { pickupDateTime = json['pickupDateTime']; transportationType = json['transportationType']; ambulate = json['ambulate']; + ambulateTitle = ""; notes = json['notes']; requesterFileNo = json['requesterFileNo']; requesterMobileNo = json['requesterMobileNo']; @@ -180,6 +183,7 @@ class TransportationDetails { data['pickupDateTime'] = this.pickupDateTime; data['transportationType'] = this.transportationType; data['ambulate'] = this.ambulate; + data['ambulateTitle'] = this.ambulateTitle; data['notes'] = this.notes; data['requesterFileNo'] = this.requesterFileNo; data['requesterMobileNo'] = this.requesterMobileNo; diff --git a/lib/core/service/feedback/feedback_service.dart b/lib/core/service/feedback/feedback_service.dart index d6da1ee3..57bb9c51 100644 --- a/lib/core/service/feedback/feedback_service.dart +++ b/lib/core/service/feedback/feedback_service.dart @@ -86,6 +86,7 @@ class FeedbackService extends BaseService { response['ListCOCItems'].forEach((cOC) { cOCItemList.add(COCItem.fromJson(cOC)); }); + cOCItemList = cOCItemList.reversed.toList(); // Sort list in desc order }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; diff --git a/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart b/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart index 0b6d7a1d..424a4b20 100644 --- a/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart +++ b/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart @@ -21,14 +21,15 @@ class PrescriptionDeliveryViewModel extends BaseViewModel { setState(ViewState.Busy); await _pharmacyModuleService.generatePharmacyToken().then((value) async { // await _customerAddressesService.getCustomerInfo(); - await _customerAddressesService.getCustomerInfo(); + // await _customerAddressesService.getCustomerInfo(); + await _pharmacyModuleService.createUser(); }); if (_customerAddressesService.hasError) { error = _customerAddressesService.error; setState(ViewState.ErrorLocal); } else { - await getCustomerAddresses(); } + await getCustomerAddresses(); } Future insertDeliveryOrder( diff --git a/lib/core/viewModels/medical/prescriptions_view_model.dart b/lib/core/viewModels/medical/prescriptions_view_model.dart index 2f86e5a1..38009f45 100644 --- a/lib/core/viewModels/medical/prescriptions_view_model.dart +++ b/lib/core/viewModels/medical/prescriptions_view_model.dart @@ -45,7 +45,7 @@ class PrescriptionsViewModel extends BaseViewModel { setState(ViewState.Error); } else { _filterList(); - await getPrescriptionsOrders(); +// await getPrescriptionsOrders(); setState(ViewState.Idle); } } diff --git a/lib/pages/AlHabibMedicalService/h2o/today_page.dart b/lib/pages/AlHabibMedicalService/h2o/today_page.dart index 85182717..85c3544c 100644 --- a/lib/pages/AlHabibMedicalService/h2o/today_page.dart +++ b/lib/pages/AlHabibMedicalService/h2o/today_page.dart @@ -1,13 +1,17 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; +import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/insert_user_activity_request_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/widgets/h20_floating_action_button.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; +import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:percent_indicator/circular_percent_indicator.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -17,13 +21,27 @@ import 'package:wave/wave.dart'; import 'Dialog/confirm_add_amount_dialog.dart'; import 'add_custom_amount.dart'; -class TodayPage extends StatelessWidget { +class TodayPage extends StatefulWidget { + TodayPage({Key key}) : super(key: key); + @override + _TodayPageState createState() { + return _TodayPageState(); + } +} + +class _TodayPageState extends State { + TextEditingController _h20AmountController = TextEditingController(); + + bool isUnitML = true; Future readPrefs() async { SharedPreferences prefs = await SharedPreferences.getInstance(); - return (prefs.getString(H2O_UNIT) ?? "ml") == "ml" ? true : false; + isUnitML = (prefs.getString(H2O_UNIT) ?? "ml") == "ml" ? true : false; + return isUnitML; } + bool canShowAddButton = false; + @override Widget build(BuildContext context) { return BaseView( @@ -46,7 +64,6 @@ class TodayPage extends StatelessWidget { child: FutureBuilder( future: readPrefs(), builder: (context, data) { - var isUnitML = true; String unit; if (data.connectionState == ConnectionState.done) { isUnitML = data.data; @@ -152,8 +169,6 @@ class TodayPage extends StatelessWidget { _circularButton(context, 330, model), SizedBox(height: 8), _circularButton(context, 200, model), - // SizedBox(height: 8), - // _circularButton(context, 0, model, isCustom: true), SizedBox(height: 8), InkWell( onTap: () => undoVolume(context, model), @@ -175,24 +190,114 @@ class TodayPage extends StatelessWidget { ), ), SizedBox(height: 40), - // Text( - // TranslationBase.of(context).addCustomAmount, - // style: TextStyle( - // fontSize: 14, - // height: 21 / 14, - // fontWeight: FontWeight.w600, - // color: Color(0xff2B353E), - // letterSpacing: -0.56, - // ), - // ), + Text( + TranslationBase.of(context).addCustomAmount, + style: TextStyle( + fontSize: 14, + height: 21 / 14, + fontWeight: FontWeight.w600, + color: Color(0xff2B353E), + letterSpacing: -0.56, + ), + ), + SizedBox(height: 12), + Container( + padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15), + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(15), + color: Colors.white, + border: Border.all( + color: Color(0xffefefef), + width: 1, + ), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Row( + children: [ + Expanded( + flex: 3, + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + TranslationBase.of(context).amount, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color(0xff2E303A), + letterSpacing: -0.44, + ), + ), + TextField( + controller: _h20AmountController, + keyboardType: TextInputType.number, + onChanged: (value) { + double _value = 0; + if (value.length > 0) _value = double.parse(value); + if (value.length > 0) { + if (canShowAddButton) { + return; + } + canShowAddButton = true; + setState(() {}); + } else { + canShowAddButton = false; + setState(() {}); + } + }, + inputFormatters: [ + FilteringTextInputFormatter.allow(RegExp(r'[0-9]')), + ], + style: TextStyle( + color: Color(0xff575757), + letterSpacing: -0.56, + ), + decoration: InputDecoration( + isDense: true, + hintText: "0", + hintStyle: TextStyle( + fontSize: 14, + height: 21 / 14, + fontWeight: FontWeight.w400, + color: Color(0xff575757), + letterSpacing: -0.56, + ), + contentPadding: EdgeInsets.zero, + border: InputBorder.none, + focusedBorder: InputBorder.none, + enabledBorder: InputBorder.none, + ), + ), + ], + ), + ), + if (canShowAddButton) + Expanded( + flex: 1, + child: DefaultButton( + TranslationBase.of(context).add, + () async { + await showConfirmMessage(context, int.parse(_h20AmountController.text), model); + _h20AmountController.text = ""; + canShowAddButton = false; + SystemChannels.textInput.invokeMethod('TextInput.hide'); + setState(() {}); + }, + ), + ), + ], + ), + ], + ), + ), ], ), ), - // floatingActionButton: H20FloatingActionButton( - // // controller: _controller, - // model: model, - // ), ), ); } @@ -252,12 +357,19 @@ class TodayPage extends StatelessWidget { ); } - void showConfirmMessage(context, int amount, H2OViewModel model) { - showDialog( + Future showConfirmMessage(context, int amount, H2OViewModel model) async { + String title = "${TranslationBase.of(context).areyousure} $amount ${(isUnitML ? TranslationBase.of(context).ml : TranslationBase.of(context).l).toLowerCase()} ?"; + await showDialog( context: context, - child: ConfirmAddAmountDialog( - model: model, - amount: amount, + child: ConfirmWithMessageDialog( + message: title, + onTap: () async { + GifLoaderDialogUtils.showMyDialog(context); + InsertUserActivityRequestModel insertUserActivityRequestModel = InsertUserActivityRequestModel(quantityIntake: amount); + await model.insertUserActivity(insertUserActivityRequestModel); + GifLoaderDialogUtils.hideDialog(context); + FocusManager.instance.primaryFocus.unfocus(); + }, ), ); } diff --git a/lib/pages/BookAppointment/components/SearchByDoctor.dart b/lib/pages/BookAppointment/components/SearchByDoctor.dart index 7ce9e2b7..07d17db4 100644 --- a/lib/pages/BookAppointment/components/SearchByDoctor.dart +++ b/lib/pages/BookAppointment/components/SearchByDoctor.dart @@ -164,11 +164,11 @@ class _SearchByDoctorState extends State { getDoctorsList(context); } - Future navigateToSearchResults( + navigateToSearchResults( context, List docList, List - patientDoctorAppointmentListHospital) async { + patientDoctorAppointmentListHospital) { Navigator.push( context, FadePage( diff --git a/lib/pages/ContactUs/LiveChat/livechat_page.dart b/lib/pages/ContactUs/LiveChat/livechat_page.dart index fb9c0b0b..6070ab51 100644 --- a/lib/pages/ContactUs/LiveChat/livechat_page.dart +++ b/lib/pages/ContactUs/LiveChat/livechat_page.dart @@ -1,7 +1,4 @@ -import 'dart:ui'; - import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; -import 'package:diplomaticquarterapp/pages/ContactUs/LiveChat/pharmaciesLivechat_page.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; @@ -49,40 +46,7 @@ class _LiveChatPageState extends State with SingleTickerProviderSt showNewAppBar: true, showNewAppBarTitle: true, backgroundColor: CustomColors.appBackgroudGrey2Color, - body: Column( - children: [ - TabBar( - controller: _tabController, - indicatorWeight: 3.0, - indicatorSize: TabBarIndicatorSize.tab, - labelColor: Color(0xff2B353E), - unselectedLabelColor: Color(0xff575757), - labelPadding: EdgeInsets.only(top: 15, bottom: 13, left: 20, right: 20), - labelStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - letterSpacing: -0.48, - ), - unselectedLabelStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - letterSpacing: -0.48, - ), - tabs: [Text(TranslationBase.of(context).hospitals), Text(TranslationBase.of(context).pharmacies)], - ), - Expanded( - child: TabBarView( - physics: BouncingScrollPhysics(), - controller: _tabController, - children: [ - HospitalsLiveChatPage(), //SendFeedbackPage(), - PharmaciesLiveChatPage() - //StatusFeedbackPage() - ], - ), - ) - ], - ), + body: HospitalsLiveChatPage(), ); } -} +} \ No newline at end of file diff --git a/lib/pages/DrawerPages/family/add-family-member.dart b/lib/pages/DrawerPages/family/add-family-member.dart index 75291ee2..320ca8d1 100644 --- a/lib/pages/DrawerPages/family/add-family-member.dart +++ b/lib/pages/DrawerPages/family/add-family-member.dart @@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/core/model/family-file/insert_share_file_re import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart'; +import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; @@ -12,7 +13,6 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; -import 'package:diplomaticquarterapp/widgets/input/text_field.dart'; import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart'; @@ -41,6 +41,7 @@ class _AddMember extends State { var familyFileProvider = FamilyFilesProvider(); var patientShareRequestID; + @override void initState() { super.initState(); @@ -101,7 +102,7 @@ class _AddMember extends State { child: DefaultButton( TranslationBase.of(context).add, () => {this.addMember()}, - color: isButtonDisabled == true ? Colors.grey : Colors.red[600], + color: isButtonDisabled == true ? Colors.grey : CustomColors.accentColor, textColor: Colors.white, )) ], @@ -139,7 +140,7 @@ class _AddMember extends State { request.isRegister = false; request.patientStatus = 2; loading(true); - familyFileProvider.addFamilyFile(request).then((value) => manageFamily(value)).catchError(() { + familyFileProvider.addFamilyFile(request).then((value) => manageFamily(value)).catchError((err) { loading(false); }); } @@ -183,6 +184,7 @@ class _AddMember extends State { } var tempType; + startSMSService(type, result) { tempType = type; loading(false); diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart index b6ce36bf..12f7d46d 100644 --- a/lib/pages/DrawerPages/family/my-family.dart +++ b/lib/pages/DrawerPages/family/my-family.dart @@ -520,7 +520,7 @@ class _MyFamily extends State with TickerProviderStateMixin { // Utils.showProgressDialog(context); this.familyFileProvider.silentLoggin(user is AuthenticatedUser ? null : user, mainUser: user is AuthenticatedUser).then((value) => loginAfter(value, context)).catchError((err) { print(err); - AppToast.showErrorToast(message: err); + AppToast.showErrorToast(message: err.toString()); Navigator.of(context).pop(); }); } diff --git a/lib/pages/ErService/AmbulanceReq.dart b/lib/pages/ErService/AmbulanceReq.dart index cf290e5e..939c138c 100644 --- a/lib/pages/ErService/AmbulanceReq.dart +++ b/lib/pages/ErService/AmbulanceReq.dart @@ -2,12 +2,13 @@ import 'dart:ui'; import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import 'AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart'; import 'OrderLogPage.dart'; @@ -17,8 +18,7 @@ class AmbulanceReq extends StatefulWidget { _AmbulanceReqState createState() => _AmbulanceReqState(); } -class _AmbulanceReqState extends State - with SingleTickerProviderStateMixin { +class _AmbulanceReqState extends State with SingleTickerProviderStateMixin { TabController _tabController; List imagesInfo = List(); @@ -36,101 +36,61 @@ class _AmbulanceReqState extends State @override Widget build(BuildContext context) { - imagesInfo.add(ImagesInfo( - imageEn: - 'https://hmgwebservices.com/Images/MobileApp/Ambulance/en/0.png', - imageAr: - 'https://hmgwebservices.com/Images/MobileApp/Ambulance/ar/0.png')); + ProjectViewModel projectViewModel = Provider.of(context); + imagesInfo.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/Ambulance/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/Ambulance/ar/0.png')); return BaseView( onModelReady: (model) => model.getAmRequestOrders(), builder: (_, model, widget) => AppScaffold( isShowAppBar: true, + showNewAppBarTitle: true, + showNewAppBar: true, appBarTitle: TranslationBase.of(context).transportationService, description: TranslationBase.of(context).infoAmbulance, imagesInfo: imagesInfo, baseViewModel: model, - 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.90, - decoration: BoxDecoration( - border: Border( - bottom: BorderSide( - color: Theme.of(context).dividerColor, - width: 0.7), - ), - color: Colors.white), - child: Center( - child: TabBar( - isScrollable: true, - controller: _tabController, - indicatorWeight: 5.0, - indicatorSize: TabBarIndicatorSize.label, - labelColor: Theme.of(context).primaryColor, - labelPadding: - EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0), - unselectedLabelColor: Colors.grey[800], - tabs: [ - Container( - width: MediaQuery.of(context).size.width * 0.40, - child: Center( - child: Texts(TranslationBase.of(context).transportationService), - ), - ), - Container( - width: MediaQuery.of(context).size.width * 0.30, - child: Center( - child: Texts(TranslationBase.of(context).ordersLog), - ), - ), - ], - ), - ), - ), - ), + body: Column( + children: [ + TabBar( + isScrollable: false, + controller: _tabController, + indicatorWeight: 3.0, + indicatorSize: TabBarIndicatorSize.tab, + labelColor: Color(0xff2B353E), + unselectedLabelColor: Color(0xff575757), + labelPadding: EdgeInsets.only(top: 15, bottom: 13, left: 20, right: 20), + labelStyle: TextStyle( + fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', + fontSize: 15, + fontWeight: FontWeight.w600, + letterSpacing: -0.48, + ), + unselectedLabelStyle: TextStyle( + fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', + fontSize: 15, + fontWeight: FontWeight.w600, + letterSpacing: -0.48, + ), + tabs: [ + Text(TranslationBase.of(context).transportationService), + Text(TranslationBase.of(context).ordersLog), ], ), - ), - body: Column( - children: [ - Expanded( - child: TabBarView( - physics: BouncingScrollPhysics(), - controller: _tabController, - children: [ - AmbulanceRequestIndexPage( - amRequestViewModel: model, - ), - OrderLogPage( - amRequestViewModel: model, - ) - ], - ), - ) - ], - ), + Expanded( + child: TabBarView( + physics: BouncingScrollPhysics(), + controller: _tabController, + children: [ + AmbulanceRequestIndexPage( + amRequestViewModel: model, + ), + OrderLogPage( + amRequestViewModel: model, + ) + ], + ), + ) + ], ), ), ); diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart index cb77b22c..bf8cc676 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart @@ -56,7 +56,7 @@ class _AmbulanceRequestIndexPageState extends State { child: Column( children: [ SizedBox( - height: 80, + height: 10, ), Container( margin: EdgeInsets.only(left: 18, right: 18), diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart index 67b9d82b..11950cef 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart @@ -4,7 +4,7 @@ import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart'; import 'package:diplomaticquarterapp/pages/Blood/new_text_Field.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; @@ -174,7 +174,7 @@ class _BillAmountState extends State { ), Texts( TranslationBase.of(context).selectAmbulate, - bold: true, + bold: false, ), SizedBox( height: 5, @@ -196,7 +196,9 @@ class _BillAmountState extends State { color: Colors.white, ), child: ListTile( - title: Text(TranslationBase.of(context).wheelchair), + title: Text(TranslationBase.of(context).wheelchair, style: TextStyle( + fontSize: 14.0 + )), leading: Radio( value: Ambulate.Wheelchair, groupValue: _ambulate, @@ -225,7 +227,9 @@ class _BillAmountState extends State { color: Colors.white, ), child: ListTile( - title: Text(TranslationBase.of(context).walker), + title: Text(TranslationBase.of(context).walker, style: TextStyle( + fontSize: 14.0 + )), leading: Radio( value: Ambulate.Walker, groupValue: _ambulate, @@ -261,7 +265,9 @@ class _BillAmountState extends State { color: Colors.white, ), child: ListTile( - title: Text(TranslationBase.of(context).stretcher), + title: Text(TranslationBase.of(context).stretcher, style: TextStyle( + fontSize: 14.0 + )), leading: Radio( value: Ambulate.Stretcher, groupValue: _ambulate, @@ -290,7 +296,9 @@ class _BillAmountState extends State { color: Colors.white, ), child: ListTile( - title: Text(TranslationBase.of(context).none), + title: Text(TranslationBase.of(context).none, style: TextStyle( + fontSize: 14.0 + )), leading: Radio( value: Ambulate.None, groupValue: _ambulate, @@ -326,21 +334,20 @@ class _BillAmountState extends State { ), ), bottomSheet: Container( - padding: EdgeInsets.all(15), - width: double.maxFinite, - height: 90, - child: SecondaryButton( - color: Colors.grey[800], - textColor: Colors.white, - onTap: () { + color: Theme.of(context).scaffoldBackgroundColor, + padding: EdgeInsets.all(12.0), + child: DefaultButton( + TranslationBase.of(context).next, + () { setState(() { widget.patientER_RC.transportationDetails.ambulate = _ambulate.selectAmbulateNumber(); + widget.patientER_RC.transportationDetails.ambulateTitle = _ambulate.getAmbulateTitle(context); widget.patientER_RC.transportationDetails.notes = note; // widget.patientER.selectedAmbulate = _ambulate.selectAmbulateNumber(); widget.changeCurrentTab(3); }); }, - label: TranslationBase.of(context).next, + // label: TranslationBase.of(context).next, ), ), ); diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart index ce4eb2f7..cecf8c5d 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart @@ -11,7 +11,7 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/pickupLocation/PickupLocationFromMap.dart'; @@ -264,7 +264,7 @@ class _PickupLocationState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Texts(getHospitalName(TranslationBase.of(context).pickupLocation)), + Texts(getHospitalName(TranslationBase.of(context).selectHospital)), Icon( Icons.arrow_drop_down, size: 24, @@ -368,13 +368,13 @@ class _PickupLocationState extends State { ), ), bottomSheet: Container( - padding: EdgeInsets.all(15), - width: double.maxFinite, - height: 90, - child: SecondaryButton( - color: Colors.grey[800], - textColor: Colors.white, - onTap: () { + color: Theme.of(context).scaffoldBackgroundColor, + padding: EdgeInsets.all(12.0), + child: DefaultButton( + // color: Colors.grey[800], + // textColor: Colors.white, + TranslationBase.of(context).next, + () { if (_result == null || _selectedHospital == null) AppToast.showErrorToast(message: TranslationBase.of(context).selectAll); else @@ -432,7 +432,7 @@ class _PickupLocationState extends State { widget.changeCurrentTab(2); }); }, - label: TranslationBase.of(context).next, + // label: TranslationBase.of(context).next, ), ), ); diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart index aad8eb3b..d2a74505 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart @@ -5,7 +5,7 @@ import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; @@ -53,7 +53,6 @@ class _SelectTransportationMethodState extends State } else { if (widget.amRequestViewModel.amRequestModeList.length != 0) _erTransportationMethod = widget.amRequestViewModel.amRequestModeList[widget.amRequestViewModel.amRequestModeList.length - 1]; } - } @override @@ -280,13 +279,11 @@ class _SelectTransportationMethodState extends State ), ), bottomSheet: Container( - padding: EdgeInsets.all(15), - width: double.maxFinite, - height: 90, - child: SecondaryButton( - color: Colors.grey[800], - textColor: Colors.white, - onTap: () { + color: Theme.of(context).scaffoldBackgroundColor, + padding: EdgeInsets.all(12.0), + child: DefaultButton( + TranslationBase.of(context).next, + () { setState(() { // widget.patientER.transportationMethodId = (widget.amRequestViewModel.amRequestModeList.indexOf(_erTransportationMethod) + 1); // widget.patientER.direction = _direction == Direction.ToHospital ? 1 : 0; @@ -314,10 +311,8 @@ class _SelectTransportationMethodState extends State // widget.patientER.vAT = _erTransportationMethod.priceVAT ?? 0; // widget.patientER.totalPrice = _erTransportationMethod.priceTotal.toDouble(); widget.changeCurrentTab(1); - }); }, - label: TranslationBase.of(context).next, ), ), ); diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart index beebc2f8..21bb5e89 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart @@ -1,12 +1,14 @@ import 'package:diplomaticquarterapp/core/model/er/PatientER.dart'; import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class Summary extends StatefulWidget { final Function changeCurrentTab; @@ -23,6 +25,7 @@ class Summary extends StatefulWidget { class _SummaryState extends State { @override Widget build(BuildContext context) { + ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( isShowDecPage: false, isShowAppBar: false, @@ -33,7 +36,9 @@ class _SummaryState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts(TranslationBase.of(context).RRTSummary), - SizedBox(height: 5,), + SizedBox( + height: 5, + ), Container( width: double.infinity, padding: EdgeInsets.all(10), @@ -48,10 +53,15 @@ class _SummaryState extends State { TranslationBase.of(context).transportMethod, color: Colors.grey, ), - Texts( - '${widget.patientER_RC.patientERTransportationMethod.text}', - bold: true, - ), + projectViewModel.isArabic + ? Texts( + '${widget.patientER_RC.patientERTransportationMethod.textN}', + bold: true, + ) + : Texts( + '${widget.patientER_RC.patientERTransportationMethod.text}', + bold: true, + ), SizedBox( height: 8, ), @@ -93,7 +103,7 @@ class _SummaryState extends State { color: Colors.grey, ), Texts( - '${widget.patientER_RC.transportationDetails.ambulate}', + '${widget.patientER_RC.transportationDetails.ambulateTitle}', bold: true, ), SizedBox( @@ -113,16 +123,20 @@ class _SummaryState extends State { ], ), ), - SizedBox(height: 20,), - Texts(TranslationBase.of(context).billAmount,textAlign: TextAlign.start,), - SizedBox(height: 5,), + SizedBox( + height: 20, + ), + Texts( + TranslationBase.of(context).billAmount, + textAlign: TextAlign.start, + ), + SizedBox( + height: 5, + ), Container( height: 55, padding: EdgeInsets.all(10), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(8) - ), + decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [Texts(TranslationBase.of(context).patientShareTotal + ':'), Texts(TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.priceTotal}')], @@ -134,16 +148,11 @@ class _SummaryState extends State { ), ), bottomSheet: Container( - padding: EdgeInsets.all(15), - width: double.maxFinite, - height: 90, - child:SecondaryButton( - color: Colors.grey[800], - textColor: Colors.white, - label: TranslationBase.of(context).send, - onTap: () async { - await widget.amRequestViewModel.insertERPressOrder(patientER: widget.patientER_RC); - }), + color: Theme.of(context).scaffoldBackgroundColor, + padding: EdgeInsets.all(12.0), + child: DefaultButton(TranslationBase.of(context).send, () async { + await widget.amRequestViewModel.insertERPressOrder(patientER: widget.patientER_RC); + }), ), ); } diff --git a/lib/pages/MyAppointments/SchedulePage.dart b/lib/pages/MyAppointments/SchedulePage.dart index cd34a98e..2287cff5 100644 --- a/lib/pages/MyAppointments/SchedulePage.dart +++ b/lib/pages/MyAppointments/SchedulePage.dart @@ -56,135 +56,169 @@ class _SchedulePageState extends State { Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return BaseView( - onModelReady: (model) => model.getDoctorSchedule(doctorList), - allowAny: true, - builder: (_, model, widget) => BaseView( - onModelReady: (model2) => model2.getFreeSlots(doctorList), - allowAny: true, - builder: (_, model2, widget2) { - if (model2.freeSlots.length > 0 && isPageChange == false && model2.state == ViewState.Idle) { - this.freeSlots = model2.freeSlots; - this.doctorScheduleResponse = model.getDoctorScheduleList; - - this.generateWeeksSchedules(); - } else if (model2.freeSlots.length == 0 && model2.state == ViewState.Idle) { - AppToast.showErrorToast(message: TranslationBase.of(context).emptySchedule); - Navigator.pop(context); - } - return AppScaffold( - appBarTitle: TranslationBase.of(context).schedule, - showNewAppBar: true, - showNewAppBarTitle: true, - isShowAppBar: true, - baseViewModel: model2, - isShowDecPage: false, - body: SizedBox( - height: MediaQuery.of(context).size.height, - child: Stack( - children: [ - Container( - margin: EdgeInsets.only(top: 40), - child: PageView.builder( - controller: _pageController, - itemCount: weeks.length, - onPageChanged: (index) { - setState(() { - isPageChange = true; - this.currentPage = index.toDouble(); - }); - }, - itemBuilder: (context, index) { - return Container( - child: ListView.builder( - itemCount: weeks[index].length, - itemBuilder: (context, index2) => InkWell( - onTap: () { - openBookAppointment(weeks[index][index2]); - }, - child: Row( - children: [ - Expanded( - flex: 1, - child: Padding( - padding: projectViewModel.isArabic ? EdgeInsets.only(right: 20) : EdgeInsets.only(left: 20), - child: Row(children: [ - Column( - children: [ - Texts( - weeks[index][index2]['DayName'], - fontSize: 13, - fontWeight: projectViewModel.isArabic ? FontWeight.w600 : FontWeight.w500, - ), - Texts( - getDayMonths( - DateUtil.convertStringToDate( - weeks[index][index2]['Date'], - ), - ), - fontWeight: FontWeight.bold, - fontSize: 18, - ) - ], - ) - ])), - ), - Expanded( - flex: 3, - child: ClipRRect( - borderRadius: const BorderRadius.all(Radius.circular(20.0)), - child: Container( - padding: EdgeInsets.only(left: 10, right: 10, top: 15, bottom: 20), - margin: EdgeInsets.only(left: 20, right: 20, top: 7, bottom: 7), - decoration: BoxDecoration(boxShadow: [ - DateUtil.convertStringToDate(weeks[index][index2]['Date']).toString().substring(0, 10) == DateTime.now().toString().substring(0, 10) - ? BoxShadow(color: Colors.green, offset: Offset(projectViewModel.isArabic ? 5 : -5, 0)) - : BoxShadow( - color: Colors.grey[100], - blurRadius: 5, - spreadRadius: 4, - offset: Offset(0, 10), - ), - ], borderRadius: const BorderRadius.all(Radius.circular(10.0)), color: Colors.white), - child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ - DateUtil.convertStringToDate(weeks[index][index2]['Date']).toString().substring(0, 10) == DateTime.now().toString().substring(0, 10) - ? Texts( - TranslationBase.of(context).today, - color: Colors.green, - fontWeight: FontWeight.w600, - fontSize: 12, - marginTop: 0, - ) - : SizedBox(), - Row( - children: [ - Expanded( - child: Texts( - weeks[index][index2]['WorkingHours'], - fontWeight: FontWeight.w500, - ), - ), - Icon(projectViewModel.isArabic - ? Icons - .arrow_back_ios_outlined - : Icons - .arrow_forward_outlined, size: 16.0), - ], - ) - ]))), - ), - ], - ) - ))); + onModelReady: (model) => model.getDoctorSchedule(doctorList), + allowAny: true, + builder: (_, model, widget) => BaseView( + onModelReady: (model2) => model2.getFreeSlots(doctorList), + allowAny: true, + builder: (_, model2, widget2) { + if (model2.freeSlots.length > 0 && isPageChange == false && model2.state == ViewState.Idle) { + this.freeSlots = model2.freeSlots; + this.doctorScheduleResponse = model.getDoctorScheduleList; + + this.generateWeeksSchedules(); + } else if (model2.freeSlots.length == 0 && model2.state == ViewState.Idle) { + AppToast.showErrorToast(message: TranslationBase.of(context).emptySchedule); + Navigator.pop(context); + } + return AppScaffold( + appBarTitle: TranslationBase.of(context).schedule, + showNewAppBar: true, + showNewAppBarTitle: true, + isShowAppBar: true, + backgroundColor: Color(0xffF7F7F7), + baseViewModel: model2, + isShowDecPage: false, + body: Column( + children: [ + SizedBox(height: 21), + PageViewIndicator( + isActive: true, + currentPage: this.currentPage, + length: weeks.length, + ), + Expanded( + child: PageView.builder( + controller: _pageController, + itemCount: weeks.length, + onPageChanged: (index) { + setState(() { + isPageChange = true; + this.currentPage = index.toDouble(); + }); + }, + itemBuilder: (context, index) { + return ListView.separated( + itemCount: weeks[index].length, + padding: EdgeInsets.all(21), + separatorBuilder: (context, index) => SizedBox(height: 12), + itemBuilder: (context, index2) { + bool isToday = DateUtil.convertStringToDate(weeks[index][index2]['Date']).toString().substring(0, 10) == DateTime.now().toString().substring(0, 10); + Color toDayColor = isToday ? Color(0xff359846) : Colors.white; + + return InkWell( + onTap: () { + openBookAppointment(weeks[index][index2]); }, - )), - PageViewIndicator( - isActive: true, - currentPage: this.currentPage, - length: weeks.length, - ) - ], - ))); - })); + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + flex: 1, + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + weeks[index][index2]['DayName'], + style: TextStyle( + fontSize: 13, + fontWeight: FontWeight.w600, + color: Color(0xff2E303A), + letterSpacing: -0.52, + ), + ), + Text( + getDayMonths(DateUtil.convertStringToDate(weeks[index][index2]['Date'])), + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w700, + color: Color(0xff2E303A), + letterSpacing: -0.72, + ), + ), + ], + ), + ), + Expanded( + flex: 3, + child: Container( + decoration: BoxDecoration( + color: toDayColor, + borderRadius: BorderRadius.all( + Radius.circular(10.0), + ), + boxShadow: [ + BoxShadow( + color: Color(0xff000000).withOpacity(.05), + blurRadius: 27, + offset: Offset(0, -3), + ), + ], + ), + child: Container( + margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 6, right: projectViewModel.isArabic ? 6 : 0), + padding: EdgeInsets.symmetric(vertical: 14, 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( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + if (isToday) + Text( + TranslationBase.of(context).today, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + color: toDayColor, + letterSpacing: -0.48, + ), + ), + Row( + children: [ + Expanded( + child: Text( + weeks[index][index2]['WorkingHours'], + style: TextStyle( + fontSize: 13, + fontWeight: FontWeight.w600, + color: Color(0xff2E303A), + letterSpacing: -0.56, + ), + ), + ), + ], + ) + ]), + ), + Icon(Icons.arrow_forward, color: Color(0xff2B353E)), + ], + ), + ), + ), + ), + ], + ), + ); + }); + }, + ), + ), + ], + ), + ); + }), + ); } generateWeeksSchedules() { diff --git a/lib/pages/MyAppointments/widgets/indicator.dart b/lib/pages/MyAppointments/widgets/indicator.dart index 5976042f..e652e360 100644 --- a/lib/pages/MyAppointments/widgets/indicator.dart +++ b/lib/pages/MyAppointments/widgets/indicator.dart @@ -37,11 +37,11 @@ class PageViewIndicator extends StatelessWidget { Widget circleBar(bool isActive) { return AnimatedContainer( duration: Duration(milliseconds: 150), - margin: EdgeInsets.symmetric(horizontal: 3), - height: isActive ? 12 : 8, - width: isActive ? 12 : 8, + margin: EdgeInsets.symmetric(horizontal: 4), + height: isActive ? 12 : 12, + width: isActive ? 12 : 12, decoration: BoxDecoration( - color: isActive ? Colors.red : Colors.grey, + color: isActive ? Color(0xffD02127) : Color(0xffD0D0D0), borderRadius: BorderRadius.all(Radius.circular(12))), ); } diff --git a/lib/pages/feedback/status_feedback_page.dart b/lib/pages/feedback/status_feedback_page.dart index cbbf2572..6ac4d557 100644 --- a/lib/pages/feedback/status_feedback_page.dart +++ b/lib/pages/feedback/status_feedback_page.dart @@ -81,7 +81,7 @@ class _StatusFeedbackPageState extends State { fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', color: Color(0xff2B353E), letterSpacing: -0.48)), - Text(model.cOCItemList[index].date.split(" ")[1], + Text(model.cOCItemList[index].date.split(" ")[1].substring(0, 4), style: TextStyle( fontSize: 12, fontWeight: FontWeight.w600, diff --git a/lib/pages/insurance/insurance_card_screen.dart b/lib/pages/insurance/insurance_card_screen.dart index b68c9d86..16995546 100644 --- a/lib/pages/insurance/insurance_card_screen.dart +++ b/lib/pages/insurance/insurance_card_screen.dart @@ -47,18 +47,15 @@ class _InsuranceCardState extends State { showNewAppBar: true, showNewAppBarTitle: true, backgroundColor: CustomColors.appBackgroudGreyColor, - floatingActionButton: FloatingActionButton( + floatingActionButton: FloatingActionButton.extended( onPressed: () { Navigator.push(context, FadePage(page: InsuranceUpdate())); }, backgroundColor: CustomColors.accentColor, - child: Padding( - padding: const EdgeInsets.all(12.0), - child: Image.asset( - 'assets/images/medical/insurance_update_icon_.png', - color: Colors.white, - ), - ), + label: Text(TranslationBase.of(context).update, style: TextStyle( + fontSize: 12.0, + fontWeight: FontWeight.bold + )), ), body: Container( child: ListView.separated( diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index f96cf7f4..ceadc7e4 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -541,7 +541,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { pageController.jumpToPage(0); }, ), - projectViewModel.isLogin && model.notificationsCount != null + projectViewModel.isLogin && model.notificationsCount != null && !projectViewModel.isLoginChild ? new Positioned( right: projectViewModel.isArabic ? 35 : 0, top: 5, diff --git a/lib/pages/medical/balance/confirm_payment_page.dart b/lib/pages/medical/balance/confirm_payment_page.dart index 9eacff2d..bc92bc08 100644 --- a/lib/pages/medical/balance/confirm_payment_page.dart +++ b/lib/pages/medical/balance/confirm_payment_page.dart @@ -17,42 +17,74 @@ import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'dialogs/ConfirmSMSDialog.dart'; import 'new_text_Field.dart'; -class ConfirmPaymentPage extends StatelessWidget { +class ConfirmPaymentPage extends StatefulWidget { final AdvanceModel advanceModel; final PatientInfoAndMobileNumber patientInfoAndMobileNumber; final String selectedPaymentMethod; - MyInAppBrowser browser; AuthenticatedUser authenticatedUser; + + ConfirmPaymentPage({this.advanceModel, this.patientInfoAndMobileNumber, this.selectedPaymentMethod, this.authenticatedUser}); + + @override + _ConfirmPaymentPageState createState() => _ConfirmPaymentPageState(); +} + +class _ConfirmPaymentPageState extends State { + MyInAppBrowser browser; + AppSharedPreferences sharedPref = AppSharedPreferences(); + String transID = ""; - ConfirmPaymentPage({this.advanceModel, this.patientInfoAndMobileNumber, this.selectedPaymentMethod, this.authenticatedUser}); + void submit(MyBalanceViewModel model, code) { + final activationCode = code; + GifLoaderDialogUtils.showMyDialog(AppGlobal.context); + model.checkActivationCodeForAdvancePayment(activationCode: activationCode).then((value) { + GifLoaderDialogUtils.hideDialog(AppGlobal.context); + Navigator.pop(context, true); + AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList(); + appo.projectID = widget.patientInfoAndMobileNumber.projectID; + openPayment(widget.selectedPaymentMethod, widget.authenticatedUser, double.parse(widget.advanceModel.amount), null); + }); + } @override Widget build(BuildContext context) { - void showSMSDialog() { - showDialog( - context: context, - barrierDismissible: false, - child: ConfirmSMSDialog( - phoneNumber: patientInfoAndMobileNumber.mobileNumber, - ), - ).then((value) { - print("dialog dismissed"); - print(value); - if (value != null && value) { - AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList(); - appo.projectID = patientInfoAndMobileNumber.projectID; - openPayment(selectedPaymentMethod, authenticatedUser, double.parse(advanceModel.amount), null); - } - }); + void showSMSDialog(MyBalanceViewModel model) { + new SMSOTP( + context, + 1, + widget.patientInfoAndMobileNumber.mobileNumber, + (value) { + submit(model, value); + }, + () => { + Navigator.pop(context), + }, + ).displayDialog(context); + + // showDialog( + // context: context, + // barrierDismissible: false, + // child: ConfirmSMSDialog( + // phoneNumber: patientInfoAndMobileNumber.mobileNumber, + // ), + // ).then((value) { + // print("dialog dismissed"); + // print(value); + // if (value != null && value) { + // AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList(); + // appo.projectID = patientInfoAndMobileNumber.projectID; + // openPayment(selectedPaymentMethod, authenticatedUser, double.parse(advanceModel.amount), null); + // } + // }); } return BaseView( @@ -88,10 +120,10 @@ class ConfirmPaymentPage extends StatelessWidget { height: 100.0, padding: EdgeInsets.all(7.0), width: MediaQuery.of(context).size.width * 0.45, - child: selectedPaymentMethod == "ApplePay" ? SvgPicture.asset(getImagePath(selectedPaymentMethod)) : Image.asset(getImagePath(selectedPaymentMethod)), + child: widget.selectedPaymentMethod == "ApplePay" ? SvgPicture.asset(getImagePath(widget.selectedPaymentMethod)) : Image.asset(getImagePath(widget.selectedPaymentMethod)), ), Text( - '${advanceModel.amount} SAR', + '${widget.advanceModel.amount} SAR', style: TextStyle( fontSize: 20, fontWeight: FontWeight.w900, @@ -110,7 +142,7 @@ class ConfirmPaymentPage extends StatelessWidget { margin: EdgeInsets.all(3), child: NewTextFields( hintText: TranslationBase.of(context).fileNumber, - initialValue: advanceModel.fileNumber, + initialValue: widget.advanceModel.fileNumber, isEnabled: false, ), ), @@ -120,7 +152,7 @@ class ConfirmPaymentPage extends StatelessWidget { margin: EdgeInsets.all(3), child: NewTextFields( hintText: TranslationBase.of(context).name, - initialValue: patientInfoAndMobileNumber.firstName, + initialValue: widget.patientInfoAndMobileNumber.firstName, isEnabled: false, ), ), @@ -132,7 +164,7 @@ class ConfirmPaymentPage extends StatelessWidget { ), NewTextFields( hintText: TranslationBase.of(context).mobileNumber, - initialValue: patientInfoAndMobileNumber.mobileNumber, + initialValue: widget.patientInfoAndMobileNumber.mobileNumber, isEnabled: false, ), SizedBox( @@ -148,7 +180,7 @@ class ConfirmPaymentPage extends StatelessWidget { ), NewTextFields( hintText: TranslationBase.of(context).notes, - initialValue: advanceModel.note, + initialValue: widget.advanceModel.note, isEnabled: false, ), ], @@ -168,9 +200,9 @@ class ConfirmPaymentPage extends StatelessWidget { disabled: model.state == ViewState.Busy, onTap: () { GifLoaderDialogUtils.showMyDialog(context); - model.sendActivationCodeForAdvancePayment(patientID: int.parse(advanceModel.fileNumber), projectID: advanceModel.hospitalsModel.iD).then((value) { + model.sendActivationCodeForAdvancePayment(patientID: int.parse(widget.advanceModel.fileNumber), projectID: widget.advanceModel.hospitalsModel.iD).then((value) { GifLoaderDialogUtils.hideDialog(context); - if (model.state != ViewState.ErrorLocal && model.state != ViewState.Error) showSMSDialog(); + if (model.state != ViewState.ErrorLocal && model.state != ViewState.Error) showSMSDialog(model); }); }, ), @@ -208,10 +240,10 @@ class ConfirmPaymentPage extends StatelessWidget { openPayment(String paymentMethod, AuthenticatedUser authenticatedUser, double amount, AppoitmentAllHistoryResultList appo) { browser = new MyInAppBrowser(onExitCallback: onBrowserExit, appo: appo, onLoadStartCallback: onBrowserLoadStart); - transID = Utils.getAdvancePaymentTransID(advanceModel.hospitalsModel.iD, int.parse(advanceModel.fileNumber)); + transID = Utils.getAdvancePaymentTransID(widget.advanceModel.hospitalsModel.iD, int.parse(widget.advanceModel.fileNumber)); - browser.openPaymentBrowser(amount, "Advance Payment", transID, advanceModel.hospitalsModel.iD.toString(), advanceModel.email, paymentMethod, patientInfoAndMobileNumber.patientType, - advanceModel.patientName, advanceModel.fileNumber, authenticatedUser, browser, false, "3", ""); + browser.openPaymentBrowser(amount, "Advance Payment", transID, widget.advanceModel.hospitalsModel.iD.toString(), widget.advanceModel.email, paymentMethod, + widget.patientInfoAndMobileNumber.patientType, widget.advanceModel.patientName, widget.advanceModel.fileNumber, authenticatedUser, browser, false, "3", ""); } onBrowserLoadStart(String url) { @@ -263,8 +295,8 @@ class ConfirmPaymentPage extends StatelessWidget { createAdvancePayment(res, AppoitmentAllHistoryResultList appo) { DoctorsListService service = new DoctorsListService(); String paymentReference = res['Fort_id'].toString(); - service.HIS_createAdvancePayment(appo, advanceModel.hospitalsModel.iD.toString(), res['Amount'], res['Fort_id'], res['PaymentMethod'], patientInfoAndMobileNumber.patientType, - advanceModel.patientName, advanceModel.fileNumber, AppGlobal.context) + service.HIS_createAdvancePayment(appo, widget.advanceModel.hospitalsModel.iD.toString(), res['Amount'], res['Fort_id'], res['PaymentMethod'], widget.patientInfoAndMobileNumber.patientType, + widget.advanceModel.patientName, widget.advanceModel.fileNumber, AppGlobal.context) .then((res) { print(res['OnlineCheckInAppointments'][0]['AdvanceNumber']); addAdvancedNumberRequest(res['OnlineCheckInAppointments'][0]['AdvanceNumber'].toString(), paymentReference, 0, appo); diff --git a/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart b/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart index 96283aa8..e081e32b 100644 --- a/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart +++ b/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart @@ -77,7 +77,7 @@ class PrescriptionOrderOverview extends StatelessWidget { child: Padding( padding: const EdgeInsets.all(8.0), child: Center( - child: Texts(prescriptionReportList[index].itemDescription.isNotEmpty + child: Text(prescriptionReportList[index].itemDescription.isNotEmpty ? prescriptionReportList[index].itemDescription : prescriptionReportList[index].itemDescriptionN)), )), @@ -130,7 +130,7 @@ class PrescriptionOrderOverview extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Texts(prescriptionReportEnhList[index].itemDescription), + Text(prescriptionReportEnhList[index].itemDescription), ], ), ), diff --git a/lib/pages/medical/prescriptions/prescriptions_history_page.dart b/lib/pages/medical/prescriptions/prescriptions_history_page.dart index cfb24c2a..1da0adb6 100644 --- a/lib/pages/medical/prescriptions/prescriptions_history_page.dart +++ b/lib/pages/medical/prescriptions/prescriptions_history_page.dart @@ -4,7 +4,7 @@ import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_h import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart'; -import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; +import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; @@ -21,128 +21,130 @@ class PrescriptionsHistoryPage extends StatelessWidget { Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); - return AppScaffold( - baseViewModel: prescriptionsViewModel, - body: ListView.separated( - physics: BouncingScrollPhysics(), - padding: EdgeInsets.all(21), - separatorBuilder: (context, index) { - return SizedBox(height: 12); - }, - itemBuilder: (context, index) { - int status = prescriptionsViewModel.prescriptionsHistory[index].status; - String _statusDisp = projectViewModel.isArabic ? prescriptionsViewModel.prescriptionsHistory[index].descriptionN : prescriptionsViewModel.prescriptionsHistory[index].description; - Color _color; - if (status == 1) { - //pending - _color = Color(0xffCC9B14); - } else if (status == 2) { - //processing - _color = Color(0xff2E303A); - } else if (status == 3) { - //completed - _color = Color(0xff359846); - } else if (status == 4) { - //cancel // Rejected - _color = Color(0xffD02127); - } + return BaseView( + onModelReady: (model) => model.getPrescriptionsOrders(showLoading: true), + builder: (_, model, widget) => AppScaffold( + baseViewModel: prescriptionsViewModel, + body: ListView.separated( + physics: BouncingScrollPhysics(), + padding: EdgeInsets.all(21), + separatorBuilder: (context, index) { + return SizedBox(height: 12); + }, + itemBuilder: (context, index) { + int status = prescriptionsViewModel.prescriptionsHistory[index].status; + String _statusDisp = projectViewModel.isArabic ? prescriptionsViewModel.prescriptionsHistory[index].descriptionN : prescriptionsViewModel.prescriptionsHistory[index].description; + Color _color; + if (status == 1) { + //pending + _color = Color(0xffCC9B14); + } else if (status == 2) { + //processing + _color = Color(0xff2E303A); + } else if (status == 3) { + //completed + _color = Color(0xff359846); + } else if (status == 4) { + //cancel // Rejected + _color = Color(0xffD02127); + } - return InkWell( - onTap: () async { - final result = await Navigator.push( - context, - FadePage( - page: PrescriptionsHistoryDetailsPage( - prescriptionsOrder: prescriptionsViewModel.prescriptionsHistory[index], - ), - ), - ); - if (result != null) { - showOrderLog(); - } - }, - child: Container( - height: 65, - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all( - Radius.circular(10.0), - ), - boxShadow: [ - BoxShadow( - color: Color(0xff000000).withOpacity(.05), - blurRadius: 27, - offset: Offset(0, -3), - ), - ], - ), - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - Container( - width: 6, - decoration: BoxDecoration( - color: _color, - borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), - bottomLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), - topRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), - bottomRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), + return InkWell( + onTap: () async { + final result = await Navigator.push( + context, + FadePage( + page: PrescriptionsHistoryDetailsPage( + prescriptionsOrder: prescriptionsViewModel.prescriptionsHistory[index], + ), + ), + ); + if (result != null) { + showOrderLog(); + } + }, + child: Container( + height: 65, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all( + Radius.circular(10.0), + ), + boxShadow: [ + BoxShadow( + color: Color(0xff000000).withOpacity(.05), + blurRadius: 27, + offset: Offset(0, -3), + ), + ], ), - ), - ), - Expanded( - child: Padding( - padding: EdgeInsets.only(left: projectViewModel.isArabic ? 6 : 12, right: projectViewModel.isArabic ? 12 : 6), child: Row( - crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - Expanded( - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - _statusDisp, - style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: _color, letterSpacing: -0.4, height: 16 / 10), - ), - Text( - '${TranslationBase.of(context).orderNo}. ${prescriptionsViewModel.prescriptionsHistory[index].iD}', - style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16), - ), - ], + Container( + width: 6, + decoration: BoxDecoration( + color: _color, + borderRadius: BorderRadius.only( + topLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), + bottomLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), + topRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), + bottomRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), + ), ), ), - Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Text( - DateUtil.getDayMonthYearDateFormatted(prescriptionsViewModel.prescriptionsHistory[index].createdOn), - style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10), - ), - Text( - DateUtil.formatDateToTimeLang(prescriptionsViewModel.prescriptionsHistory[index].createdOn, false), - style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10), + Expanded( + child: Padding( + padding: EdgeInsets.only(left: projectViewModel.isArabic ? 6 : 12, right: projectViewModel.isArabic ? 12 : 6), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Expanded( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + _statusDisp, + style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: _color, letterSpacing: -0.4, height: 16 / 10), + ), + Text( + '${TranslationBase.of(context).orderNo}. ${prescriptionsViewModel.prescriptionsHistory[index].iD}', + style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16), + ), + ], + ), + ), + Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + DateUtil.getDayMonthYearDateFormatted(prescriptionsViewModel.prescriptionsHistory[index].createdOn), + style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10), + ), + Text( + DateUtil.formatDateToTimeLang(prescriptionsViewModel.prescriptionsHistory[index].createdOn, false), + style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10), + ), + ], + ) + ], ), - ], - ) + ), + ), + Icon( + Icons.arrow_forward, + size: 16, + ), + mWidth(6), ], ), - ), - ), - Icon( - Icons.arrow_forward, - size: 16, - ), - mWidth(6), - ], - ), - )); - }, - itemCount: prescriptionsViewModel.prescriptionsHistory.length, - ), - ); + )); + }, + itemCount: prescriptionsViewModel.prescriptionsHistory.length, + ), + )); } } diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index dffec021..07947508 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -212,22 +212,43 @@ class Utils { hasBadge: true, isEnable: projectViewModel.havePrivilege(5)), ), - Positioned( - right: 8, - top: 4, - child: Badge( - toAnimate: false, - elevation: 0, - position: BadgePosition.topEnd(), - shape: BadgeShape.circle, - badgeColor: secondaryColor.withOpacity(1.0), - borderRadius: BorderRadius.circular(8), - badgeContent: Container( - padding: EdgeInsets.all(2.0), - child: Text(count.toString(), style: TextStyle(color: Colors.white, fontSize: 16.0)), - ), - ), - ), + projectViewModel.isArabic + ? !projectViewModel.user.isFamily + ? Positioned( + left: 8, + top: 4, + child: Badge( + toAnimate: false, + elevation: 0, + position: BadgePosition.topEnd(), + shape: BadgeShape.circle, + badgeColor: secondaryColor.withOpacity(1.0), + borderRadius: BorderRadius.circular(8), + badgeContent: Container( + padding: EdgeInsets.all(2.0), + child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), + ), + ), + ) + : Container() + : !projectViewModel.user.isFamily + ? Positioned( + right: 8, + top: 4, + child: Badge( + toAnimate: false, + elevation: 0, + position: BadgePosition.topEnd(), + shape: BadgeShape.circle, + badgeColor: secondaryColor.withOpacity(1.0), + borderRadius: BorderRadius.circular(8), + badgeContent: Container( + padding: EdgeInsets.all(2.0), + child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), + ), + ), + ) + : Container(), ]) : MedicalProfileItem( title: TranslationBase.of(context).myAppointments, @@ -509,38 +530,42 @@ class Utils { hasBadge: true, isEnable: projectViewModel.havePrivilege(5)), projectViewModel.isArabic - ? Positioned( - left: 8, - top: 4, - child: Badge( - toAnimate: false, - elevation: 0, - position: BadgePosition.topEnd(), - shape: BadgeShape.circle, - badgeColor: secondaryColor.withOpacity(1.0), - borderRadius: BorderRadius.circular(8), - badgeContent: Container( - padding: EdgeInsets.all(2.0), - child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), - ), - ), - ) - : Positioned( - right: 8, - top: 4, - child: Badge( - toAnimate: false, - elevation: 0, - position: BadgePosition.topEnd(), - shape: BadgeShape.circle, - badgeColor: secondaryColor.withOpacity(1.0), - borderRadius: BorderRadius.circular(8), - badgeContent: Container( - padding: EdgeInsets.all(2.0), - child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), - ), - ), - ), + ? !projectViewModel.isLoginChild + ? Positioned( + left: 8, + top: 4, + child: Badge( + toAnimate: false, + elevation: 0, + position: BadgePosition.topEnd(), + shape: BadgeShape.circle, + badgeColor: secondaryColor.withOpacity(1.0), + borderRadius: BorderRadius.circular(8), + badgeContent: Container( + padding: EdgeInsets.all(2.0), + child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), + ), + ), + ) + : Container() + : !projectViewModel.isLoginChild + ? Positioned( + right: 8, + top: 4, + child: Badge( + toAnimate: false, + elevation: 0, + position: BadgePosition.topEnd(), + shape: BadgeShape.circle, + badgeColor: secondaryColor.withOpacity(1.0), + borderRadius: BorderRadius.circular(8), + badgeContent: Container( + padding: EdgeInsets.all(2.0), + child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), + ), + ), + ) + : Container(), ]) : MedicalProfileItem( title: TranslationBase.of(context).myAppointments, diff --git a/lib/widgets/bottom_navigation/bottom_navigation_item.dart b/lib/widgets/bottom_navigation/bottom_navigation_item.dart index 1515b239..820c6652 100644 --- a/lib/widgets/bottom_navigation/bottom_navigation_item.dart +++ b/lib/widgets/bottom_navigation/bottom_navigation_item.dart @@ -1,5 +1,6 @@ import 'package:badges/badges.dart'; import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; @@ -25,6 +26,7 @@ class BottomNavigationItem extends StatelessWidget { @override Widget build(BuildContext context) { var model = Provider.of(context); + ProjectViewModel projectViewModel = Provider.of(context); return Expanded( child: SizedBox( // height: 72.0, @@ -61,7 +63,7 @@ class BottomNavigationItem extends StatelessWidget { ), ], ) - : (authenticatedUserObject.isLogin && model.isShowBadge) + : (authenticatedUserObject.isLogin && model.isShowBadge && !projectViewModel.isLoginChild) ? Stack( alignment: AlignmentDirectional.center, children: [ diff --git a/lib/widgets/charts/show_chart.dart b/lib/widgets/charts/show_chart.dart index 15e32a48..b5a3c869 100644 --- a/lib/widgets/charts/show_chart.dart +++ b/lib/widgets/charts/show_chart.dart @@ -104,7 +104,7 @@ class ShowChart extends StatelessWidget { touchCallback: (LineTouchResponse touchResponse) {}, handleBuiltInTouches: true, ), - gridData: FlGridData(show: true, drawVerticalLine: true, drawHorizontalLine: true, horizontalInterval: horizontalInterval, verticalInterval: horizontalInterval), + gridData: FlGridData(show: true, drawVerticalLine: true, drawHorizontalLine: true), titlesData: FlTitlesData( bottomTitles: SideTitles( showTitles: true, @@ -137,7 +137,7 @@ class ShowChart extends StatelessWidget { fontWeight: FontWeight.bold, fontSize: 10, ), - interval: 3.0, + // interval: 3.0, margin: 12, ), ), diff --git a/lib/widgets/dialogs/ConfirmWithMessageDialog.dart b/lib/widgets/dialogs/ConfirmWithMessageDialog.dart index 04e2027d..fca0dd19 100644 --- a/lib/widgets/dialogs/ConfirmWithMessageDialog.dart +++ b/lib/widgets/dialogs/ConfirmWithMessageDialog.dart @@ -1,101 +1,85 @@ import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class ConfirmWithMessageDialog extends StatelessWidget { + final String title; final String message; final String okTitle; - final GestureTapCallback onTap; + final VoidCallback onTap; - const ConfirmWithMessageDialog({Key key, this.message, this.okTitle, this.onTap}) : super(key: key); + const ConfirmWithMessageDialog({Key key, this.title, @required this.message, this.okTitle, this.onTap}) : super(key: key); @override Widget build(BuildContext context) { - return SimpleDialog( - contentPadding: EdgeInsets.fromLTRB(12.0, 12.0, 12.0, 12.0), - children: [ - Column( + return Dialog( + backgroundColor: Colors.white, + shape: RoundedRectangleBorder(), + insetPadding: EdgeInsets.only(left: 21, right: 21), + child: Padding( + padding: EdgeInsets.only(left: 20, right: 20, top: 18, bottom: 28), + child: Column( crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, children: [ - Text( - TranslationBase.of(context).confirm, - style: TextStyle( - color: Colors.black, - fontSize: 22, - letterSpacing: -0.94, - fontWeight: FontWeight.bold, - ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.only(top: 16.0), + child: Text( + title ?? TranslationBase.of(context).confirm, + style: TextStyle(fontSize: 24, fontWeight: FontWeight.w600, color: Color(0xff2B353E), height: 35 / 24, letterSpacing: -0.96), + ), + ), + ), + IconButton( + padding: EdgeInsets.zero, + icon: Icon(Icons.close), + color: Color(0xff2B353E), + constraints: BoxConstraints(), + onPressed: () { + Navigator.pop(context); + }, + ) + ], ), Text( message, - style: TextStyle( - fontSize: 14, - color: CustomColors.grey, - fontWeight: FontWeight.w600, - letterSpacing: -0.48, - ), + style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff808080), letterSpacing: -0.48), ), - mHeight(20), - Container( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: InkWell( - onTap: () { - Navigator.pop(context); - }, - child: Container( - decoration: containerRadius(CustomColors.darkGreyColor, 6), - padding: EdgeInsets.all(6), - child: Center( - child: Text( - TranslationBase.of(context).cancel, - style: TextStyle( - color: Colors.black, - fontSize: 16, - letterSpacing: -0.48, - fontWeight: FontWeight.w600, - ), - ), - ), - ), - ), + SizedBox(height: 28), + Row( + mainAxisSize: MainAxisSize.min, + children: [ + Expanded( + child: DefaultButton( + TranslationBase.of(context).cancel_nocaps, + () => Navigator.pop(context), + textColor: Color(0xff2B353E), + color: Color(0xffEAEAEA), ), - mWidth(12), - Expanded( - child: InkWell( - onTap: () { - Navigator.pop(context); - onTap(); - }, - child: Container( - decoration: containerRadius(CustomColors.accentColor, 6), - padding: EdgeInsets.all(6), - child: Center( - child: Text( - okTitle, - style: TextStyle( - color: Colors.white, - fontSize: 16, - letterSpacing: -0.48, - fontWeight: FontWeight.w600, - ), - ), - ), - ), - ), + ), + SizedBox(width: 10), + Expanded( + child: DefaultButton( + okTitle ?? TranslationBase.of(context).ok, + () { + Navigator.pop(context); + onTap(); + }, ), - ], - ), + ), + ], ), - ], - ) - ], + ), + ), ); } } diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 83e70064..2599dcd4 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -329,7 +329,7 @@ class _AppDrawerState extends State { letterSpacing: -0.84, fontSize: 14, projectProvider: projectProvider, - count: toDoProvider.notificationsCount != 0 + count: toDoProvider.notificationsCount != "0" && !projectProvider.isLoginChild ? new Container( padding: EdgeInsets.all(4), margin: EdgeInsets.all(2), @@ -358,7 +358,8 @@ class _AppDrawerState extends State { onTap: () { //NotificationsPage // Navigator.of(context).pop(); - Navigator.push(context, FadePage(page: NotificationsPage())); + if(!projectProvider.user.isFamily) + Navigator.push(context, FadePage(page: NotificationsPage())); }, ), if (projectProvider.havePrivilege(3))