diff --git a/lib/config/config.dart b/lib/config/config.dart index a887eec9..d7ffabcd 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -13,7 +13,7 @@ const PACKAGES_CUSTOMER = '/api/customers'; const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items'; const PACKAGES_ORDERS = '/api/orders'; const BASE_URL = 'https://uat.hmgwebservices.com/'; -//const BASE_URL = 'https://hmgwebservices.com/'; +// const BASE_URL = 'https://hmgwebservices.com/'; // Pharmacy UAT URLs // const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; @@ -390,7 +390,7 @@ const PHARMACY_AUTORZIE_CUSTOMER = "AutorizeCustomer"; const PHARMACY_VERIFY_CUSTOMER = "VerifyCustomer"; const PHARMACY_GET_COUNTRY = "countries"; // const PHARMACY_CREATE_CUSTOMER = "epharmacy/api/CreateCustomer"; -const PHARMACY_CREATE_CUSTOMER = "epharmacy/api/getorcreateCustomer"; +const PHARMACY_CREATE_CUSTOMER = "getorcreateCustomer"; const GET_PHARMACY_BANNER = "promotionbanners"; const GET_PHARMACY_TOP_MANUFACTURER = "topmanufacturer"; const GET_PHARMACY_BEST_SELLER_PRODUCT = "bestsellerproducts"; diff --git a/lib/core/service/AlHabibMedicalService/customer_addresses_service.dart b/lib/core/service/AlHabibMedicalService/customer_addresses_service.dart index 339939de..52c2b2e1 100644 --- a/lib/core/service/AlHabibMedicalService/customer_addresses_service.dart +++ b/lib/core/service/AlHabibMedicalService/customer_addresses_service.dart @@ -1,6 +1,8 @@ import 'package:diplomaticquarterapp/config/config.dart'; +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/add_new_address_Request_Model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart'; +import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:intl/intl.dart'; import '../../../locator.dart'; diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index a6a2fb02..1f04c784 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -34,11 +34,7 @@ VitalSignService _vitalSignService = locator(); class BaseAppClient { post(String endPoint, - {Map body, - Function(dynamic response, int statusCode) onSuccess, - Function(String error, int statusCode) onFailure, - bool isAllowAny = false, - bool isExternal = false}) async { + {Map body, Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure, bool isAllowAny = false, bool isExternal = false}) async { String url; if (isExternal) { url = endPoint; @@ -196,11 +192,7 @@ class BaseAppClient { } postPharmacy(String endPoint, - {Map body, - Function(dynamic response, int statusCode) onSuccess, - Function(String error, int statusCode) onFailure, - bool isAllowAny = false, - bool isExternal = false}) async { + {Map body, Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure, bool isAllowAny = false, bool isExternal = false}) async { var token = await sharedPref.getString(PHARMACY_AUTORZIE_TOKEN); var user = await sharedPref.getObject(USER_PROFILE); String url; @@ -368,11 +360,7 @@ class BaseAppClient { Navigator.pushReplacement(context, FadePage(page: AppUpdatePage(appUpdateText: text))); } - get(String endPoint, - {Function(dynamic response, int statusCode) onSuccess, - Function(String error, int statusCode) onFailure, - Map queryParams, - bool isExternal = false}) async { + get(String endPoint, {Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure, Map queryParams, bool isExternal = false}) async { String url; if (isExternal) { url = endPoint; @@ -486,10 +474,7 @@ class BaseAppClient { } } - simpleGet(String fullUrl, - {Function(dynamic response, int statusCode) onSuccess, - Function(String error, int statusCode) onFailure, - Map queryParams}) async { + simpleGet(String fullUrl, {Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure, Map queryParams}) async { String url = fullUrl; print("URL Query String: $url"); @@ -519,10 +504,7 @@ class BaseAppClient { } } - simplePut(String fullUrl, - {Map body, - Function(dynamic response, int statusCode) onSuccess, - Function(String error, int statusCode) onFailure}) async { + simplePut(String fullUrl, {Map body, Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure}) async { String url = fullUrl; print("URL Query String: $url"); @@ -546,10 +528,7 @@ class BaseAppClient { } } - simpleDelete(String fullUrl, - {Function(dynamic response, int statusCode) onSuccess, - Function(String error, int statusCode) onFailure, - Map queryParams}) async { + simpleDelete(String fullUrl, {Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure, Map queryParams}) async { String url = fullUrl; print("URL Query String: $url"); @@ -618,11 +597,7 @@ class BaseAppClient { } pharmacyPost(String endPoint, - {Map body, - Function(dynamic response, int statusCode) onSuccess, - Function(String error, int statusCode) onFailure, - bool isAllowAny = false, - bool isExternal = false}) async { + {Map body, Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure, bool isAllowAny = false, bool isExternal = false}) async { var token = await sharedPref.getString(PHARMACY_AUTORZIE_TOKEN); var user = await sharedPref.getObject(USER_PROFILE); String url; diff --git a/lib/core/service/parmacyModule/parmacy_module_service.dart b/lib/core/service/parmacyModule/parmacy_module_service.dart index 72bc56c7..0a87000d 100644 --- a/lib/core/service/parmacyModule/parmacy_module_service.dart +++ b/lib/core/service/parmacyModule/parmacy_module_service.dart @@ -19,16 +19,12 @@ class PharmacyModuleService extends BaseService { List lastVisitedProducts = List(); Future makeVerifyCustomer(dynamic data) async { - Map queryParams = { - 'FileNumber': data['PatientID'].toString() - }; + Map queryParams = {'FileNumber': data['PatientID'].toString()}; hasError = false; try { - await baseAppClient.getPharmacy(PHARMACY_VERIFY_CUSTOMER, - onSuccess: (dynamic response, int statusCode) async { + await baseAppClient.getPharmacy(PHARMACY_VERIFY_CUSTOMER, onSuccess: (dynamic response, int statusCode) async { if (response['UserName'] != null) { - sharedPref.setString( - PHARMACY_CUSTOMER_ID, response['CustomerId'].toString()); + sharedPref.setString(PHARMACY_CUSTOMER_ID, response['CustomerId'].toString()); print(response); } else { await createUser(); @@ -47,19 +43,14 @@ class PharmacyModuleService extends BaseService { var languageID = await sharedPref.getString(APP_LANGUAGE); Map queryParams = { 'Phone': data['MobileNumber'], - 'Email': data['EmailAddress'], 'FileNumber': data['PatientID'].toString(), - 'Language': languageID.toString(), - 'Gender': data['Gender'].toString(), - 'FirstName': data['FirstName'], - 'LastName': data['LastName'], - 'LanguageId': languageID.toString(), - 'CountryCode': data['ZipCode'], + 'Language': languageID.toString() == 'en' ? '2' : '1', + 'Iqama': data['PatientIdentificationNo'], + 'CountryCode': data['ZipCode'] ?? '966', }; hasError = false; try { - await baseAppClient.get(PHARMACY_CREATE_CUSTOMER, - onSuccess: (dynamic response, int statusCode) async { + await baseAppClient.getPharmacy(PHARMACY_CREATE_CUSTOMER, onSuccess: (dynamic response, int statusCode) async { if (!response['IsRegistered']) {} await generatePharmacyToken(); }, onFailure: (String error, int statusCode) { @@ -79,11 +70,9 @@ class PharmacyModuleService extends BaseService { }; hasError = false; try { - await baseAppClient.getPharmacy(PHARMACY_AUTORZIE_CUSTOMER, - onSuccess: (dynamic response, int statusCode) async { + await baseAppClient.getPharmacy(PHARMACY_AUTORZIE_CUSTOMER, onSuccess: (dynamic response, int statusCode) async { if (response['Status'] == 200) { - await sharedPref.setString( - PHARMACY_AUTORZIE_TOKEN, response['token'].toString()); + await sharedPref.setString(PHARMACY_AUTORZIE_TOKEN, response['token'].toString()); } }, onFailure: (String error, int statusCode) { hasError = true; @@ -97,8 +86,7 @@ class PharmacyModuleService extends BaseService { Future getBannerListList() async { hasError = false; try { - await baseAppClient.getPharmacy(GET_PHARMACY_BANNER, - onSuccess: (dynamic response, int statusCode) { + await baseAppClient.getPharmacy(GET_PHARMACY_BANNER, onSuccess: (dynamic response, int statusCode) { bannerItems.clear(); response['images'].forEach((item) { bannerItems.add(PharmacyImageObject.fromJson(item)); @@ -116,8 +104,7 @@ class PharmacyModuleService extends BaseService { hasError = false; Map queryParams = {'page': '1', 'limit': '8'}; try { - await baseAppClient.getPharmacy(GET_PHARMACY_TOP_MANUFACTURER, - onSuccess: (dynamic response, int statusCode) { + await baseAppClient.getPharmacy(GET_PHARMACY_TOP_MANUFACTURER, onSuccess: (dynamic response, int statusCode) { manufacturerList.clear(); response['manufacturer'].forEach((item) { Manufacturer manufacturer = Manufacturer.fromJson(item); @@ -140,8 +127,7 @@ class PharmacyModuleService extends BaseService { 'id,discount_ids,name,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage,reviews', }; try { - await baseAppClient.getPharmacy(GET_PHARMACY_BEST_SELLER_PRODUCT, - onSuccess: (dynamic response, int statusCode) { + await baseAppClient.getPharmacy(GET_PHARMACY_BEST_SELLER_PRODUCT, onSuccess: (dynamic response, int statusCode) { bestSellerProducts.clear(); response['products'].forEach((item) { bestSellerProducts.add(PharmacyProduct.fromJson(item)); @@ -157,14 +143,10 @@ class PharmacyModuleService extends BaseService { Future getLastVisitedProducts() async { String lastVisited = ""; - if (await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS) != - null) { - lastVisited = - await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS); + if (await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS) != null) { + lastVisited = await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS); try { - await baseAppClient - .getPharmacy("$GET_PHARMACY_PRODUCTs_BY_IDS$lastVisited", - onSuccess: (dynamic response, int statusCode) { + await baseAppClient.getPharmacy("$GET_PHARMACY_PRODUCTs_BY_IDS$lastVisited", onSuccess: (dynamic response, int statusCode) { lastVisitedProducts.clear(); response['products'].forEach((item) { lastVisitedProducts.add(PharmacyProduct.fromJson(item)); diff --git a/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart b/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart index 4ebdbcc1..9119ff32 100644 --- a/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart +++ b/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart @@ -105,13 +105,17 @@ class HomeHealthCareViewModel extends BaseViewModel { Future getCustomerInfo() async { setState(ViewState.Busy); - await _pharmacyModuleService.generatePharmacyToken().then((value) async { - await _customerAddressesService.getCustomerInfo(); - }); + await _pharmacyModuleService.generatePharmacyToken(); + // await _pharmacyModuleService.createUser(); + if (_customerAddressesService.hasError) { error = _customerAddressesService.error; + await _pharmacyModuleService.createUser(); + await _customerAddressesService.getCustomerInfo(); setState(ViewState.ErrorLocal); } else { + await _pharmacyModuleService.createUser(); + await _customerAddressesService.getCustomerInfo(); await getCustomerAddresses(); } } diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_one_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_one_page.dart index d2255712..84b7e257 100644 --- a/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_one_page.dart +++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_one_page.dart @@ -139,7 +139,7 @@ class _NewHomeHealthCareStepOnePageState extends State with Tick model: model, onTap: () async { UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.presOrderID, rejectionReason: "", presOrderStatus: 4, editedBy: 3); + model.setState(ViewState.Busy); await model.updateHHCPresOrder(updatePresOrderRequestModel); if (model.state == ViewState.ErrorLocal) { Utils.showErrorToast(model.error); diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart index ae516429..3c92ace9 100644 --- a/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart +++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart @@ -32,6 +32,7 @@ class OrdersLogDetailsPage extends StatelessWidget { model: model, onTap: () async { UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.iD, rejectionReason: "", presOrderStatus: 4, editedBy: 3); + model.setState(ViewState.Busy); await model.updateHHCPresOrder(updatePresOrderRequestModel); if (model.state == ViewState.ErrorLocal) { Utils.showErrorToast(model.error); diff --git a/lib/pages/DrawerPages/family/add-family-member.dart b/lib/pages/DrawerPages/family/add-family-member.dart index 35b19ccd..3e6621fb 100644 --- a/lib/pages/DrawerPages/family/add-family-member.dart +++ b/lib/pages/DrawerPages/family/add-family-member.dart @@ -5,6 +5,8 @@ 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/uitl/app_shared_preferences.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.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; @@ -53,8 +55,7 @@ class _AddMember extends State { ? AppCircularProgressIndicator() : SingleChildScrollView( child: Container( - padding: - EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30), + padding: EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30), height: SizeConfig.realScreenHeight * .9, width: SizeConfig.realScreenWidth, child: Column(children: [ @@ -66,60 +67,51 @@ class _AddMember extends State { textAlign: TextAlign.left, )), Expanded( - flex: 3, + flex: 4, child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - MobileNo( - onNumberChange: (value) => - {mobileNo = value, validateForm()}, - onCountryChange: (value) => countryCode = value), - Container( - child: TextFields( - controller: nationalIDorFile, - onChanged: (value) => {validateForm()}, - prefixIcon: Icon( - loginType == 1 - ? Icons.chrome_reader_mode - : Icons.receipt, - color: Colors.red), - padding: EdgeInsets.only( - top: 20, bottom: 20, left: 10, right: 10), - hintText: loginType == 1 - ? TranslationBase.of(context).nationalID - : TranslationBase.of(context).fileNo, - )) + PhoneNumberSelectorWidget(onNumberChange: (value) => {mobileNo = value, validateForm()}, onCountryChange: (value) => countryCode = value), + //MobileNo(onNumberChange: (value) => {mobileNo = value, validateForm()}, onCountryChange: (value) => countryCode = value), + // Container( + // child: TextFields( + // controller: nationalIDorFile, + // onChanged: (value) => {validateForm()}, + // prefixIcon: Icon(loginType == 1 ? Icons.chrome_reader_mode : Icons.receipt, color: Colors.red), + // padding: EdgeInsets.only(top: 20, bottom: 20, left: 10, right: 10), + // hintText: loginType == 1 ? TranslationBase.of(context).nationalID : TranslationBase.of(context).fileNo, + // )) + SizedBox( + height: 12, + ), + inputWidget(loginType == 1 ? TranslationBase.of(context).nationalIdNumber : TranslationBase.of(context).medicalFileNumber, "Xxxxxxxxx", nationalIDorFile), ], ), ), - Expanded( - flex: 3, - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Row( - children: [ - Expanded( - child: DefaultButton( - TranslationBase.of(context).add, - () => {this.addMember()}, - color: isButtonDisabled == true - ? Colors.grey - : Colors.grey[900], - textColor: Colors.white, - )) - ], - ), - ], - )) + // Expanded( + // flex: 3, + // child: Column( + // mainAxisAlignment: MainAxisAlignment.end, + // children: [ + // Row( + // children: [ + // Expanded( + // child: DefaultButton( + // TranslationBase.of(context).add, + // () => {this.addMember()}, + // color: isButtonDisabled == true ? Colors.grey : Colors.grey[900], + // textColor: Colors.white, + // )) + // ], + // ), + // ], + // )) ]), ))); } void validateForm() { - if (util.validateIDBox(nationalIDorFile.text, loginType) == true && - mobileNo.length >= 9 && - util.isSAUDIIDValid(nationalIDorFile.text, loginType) == true) { + if (util.validateIDBox(nationalIDorFile.text, loginType) == true && mobileNo.length >= 9 && util.isSAUDIIDValid(nationalIDorFile.text, loginType) == true) { setState(() { isButtonDisabled = false; }); @@ -145,10 +137,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(() { loading(false); }); } @@ -160,10 +149,7 @@ class _AddMember extends State { confirmMessage: addMemberResult['ShareFamilyFileObj']['Message'], okText: TranslationBase.of(context).confirm, cancelText: TranslationBase.of(context).cancel_nocaps, - okFunction: () => { - insertFamilyData(addMemberResult), - ConfirmDialog.closeAlertDialog(context) - }, + okFunction: () => {insertFamilyData(addMemberResult), ConfirmDialog.closeAlertDialog(context)}, cancelFunction: () => {}); dialog.showAlertDialog(context); } @@ -171,8 +157,7 @@ class _AddMember extends State { insertFamilyData(addMemberResult) { var request = InsertSharePatientFileReq(); request.responseID = addMemberResult['ShareFamilyFileObj']['ReponseID']; - request.shareFamilyPatientName = - addMemberResult['ShareFamilyFileObj']['SharedPatientName']; + request.shareFamilyPatientName = addMemberResult['ShareFamilyFileObj']['SharedPatientName']; request.status = 2; if (request.patientOutSA == 1) { request.regionID = 2; @@ -180,29 +165,26 @@ class _AddMember extends State { request.regionID = 1; } loading(true); - familyFileProvider - .insertNewMember(request) - .then((value) => sendActivationCode(value)); + familyFileProvider.insertNewMember(request).then((value) => sendActivationCode(value)); } sendActivationCode(result) { // var request = this.getCommonRequest(); loading(true); patientShareRequestID = result['PatientShareRequestID']; - familyFileProvider - .sendActivationCode(mobileNo, countryCode, nationalIDorFile.text) - .then((result) => { - if (result != null && result['isSMSSent'] == true) - {this.startSMSService(1, result)} - // {loading(false), this.startSMSService(type)} - // else - // {loading(false)} - }); + familyFileProvider.sendActivationCode(mobileNo, countryCode, nationalIDorFile.text).then((result) => { + if (result != null && result['isSMSSent'] == true) {this.startSMSService(1, result)} + // {loading(false), this.startSMSService(type)} + // else + // {loading(false)} + }); } + var tempType; startSMSService(type, result) { + tempType = type; loading(false); - SMSOTP( + SMSOTP( context, type, mobileNo, @@ -210,30 +192,32 @@ class _AddMember extends State { this.checkActivationCode(value, result); }, () => { - print('Faild..'), + Navigator.pop(context), }, ).displayDialog(context); } checkActivationCode(value, result) { - familyFileProvider - .checkActivationCode( - result['LogInTokenID'], value, nationalIDorFile.text, mobileNo) - .then((result) => { - SMSOTP.hideSMSBox(context), - handleFamilyRequests(this.patientShareRequestID, 3) - }); + Navigator.pop(context); + GifLoaderDialogUtils.showMyDialog(context); + familyFileProvider.checkActivationCode(result['LogInTokenID'], value, nationalIDorFile.text, mobileNo).then((result) { + SMSOTP.hideSMSBox(context); + handleFamilyRequests(this.patientShareRequestID, 3); + }).catchError((err) { + Future.delayed(Duration(seconds: 1), () { + AppToast.showErrorToast(message: err); + startSMSService(tempType, result); + }); + }); } handleFamilyRequests(id, stauts) { - familyFileProvider - .acceptAndRejectRecievedRequests(id, stauts) - .then((result) => { - sharedPref.remove(FAMILY_FILE), - Navigator.of(context).pushNamed( - MY_FAMILIY, - ) - }); + familyFileProvider.acceptAndRejectRecievedRequests(id, stauts).then((result) => { + sharedPref.remove(FAMILY_FILE), + Navigator.of(context).pushNamed( + MY_FAMILIY, + ) + }); } loading(flag) { @@ -241,4 +225,86 @@ class _AddMember extends State { isLoading = flag; }); } + + Widget inputWidget(String _labelText, String _hintText, TextEditingController _controller, {String prefix, bool isEnable = true, bool hasSelection = false}) { + return 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: InkWell( + onTap: hasSelection ? () {} : null, + child: Row( + children: [ + Expanded( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + _labelText, + style: TextStyle( + fontSize: 11, + fontWeight: FontWeight.w600, + color: Color(0xff2B353E), + letterSpacing: -0.44, + ), + ), + TextField( + enabled: isEnable, + scrollPadding: EdgeInsets.zero, + keyboardType: TextInputType.number, + controller: _controller, + onChanged: (value) => {validateForm()}, + style: TextStyle( + fontSize: 14, + height: 21 / 14, + fontWeight: FontWeight.w400, + color: Color(0xff2B353E), + letterSpacing: -0.44, + ), + decoration: InputDecoration( + isDense: true, + hintText: _hintText, + hintStyle: TextStyle( + fontSize: 14, + height: 21 / 14, + fontWeight: FontWeight.w400, + color: Color(0xff575757), + letterSpacing: -0.56, + ), + prefixIconConstraints: BoxConstraints(minWidth: 50), + prefixIcon: prefix == null + ? null + : Text( + "+" + prefix, + style: TextStyle( + fontSize: 14, + height: 21 / 14, + fontWeight: FontWeight.w500, + color: Color(0xff2E303A), + letterSpacing: -0.56, + ), + ), + contentPadding: EdgeInsets.zero, + border: InputBorder.none, + focusedBorder: InputBorder.none, + enabledBorder: InputBorder.none, + ), + ), + ], + ), + ), + if (hasSelection) Icon(Icons.keyboard_arrow_down_outlined), + ], + ), + ), + ); + } } diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart index 7ba6cc4e..9bb6b7d7 100644 --- a/lib/pages/DrawerPages/family/my-family.dart +++ b/lib/pages/DrawerPages/family/my-family.dart @@ -21,7 +21,9 @@ 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.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/bottom_bar.dart'; @@ -91,18 +93,18 @@ class _MyFamily extends State with TickerProviderStateMixin { 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, - ), - ), - ), + // 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, @@ -121,8 +123,8 @@ class _MyFamily extends State with TickerProviderStateMixin { //indicatorSize: TabBarIndicatorSize.label, indicatorSize: TabBarIndicatorSize.tab, - indicatorColor: Theme.of(context).primaryColor, - labelColor: Theme.of(context).primaryColor, + // indicatorColor: Theme.of(context).primaryColor, + // labelColor: Theme.of(context).primaryColor, labelPadding: EdgeInsets.only(top: 4.0, left: 35.0, right: 35.0), unselectedLabelColor: Colors.grey[800], tabs: [ @@ -159,41 +161,20 @@ class _MyFamily extends State with TickerProviderStateMixin { ) ], ), + bottomSheet: Container( + width: MediaQuery.of(context).size.width, + height: 70.0, + margin: EdgeInsets.only(left: 15.0, right: 15.0, top: 10.0), + child: Button( + onTap: () async { + Navigator.of(context).pushNamed(ADD_FAMILY_MEMBER_TYPE); + }, + label: TranslationBase.of(context).addFamilyMember, + backgroundColor: Colors.red[900], + ), + ), ), ); - - // return AppScaffold( - // appBarTitle: TranslationBase.of(context).myFamilyFiles, - // isShowAppBar: widget.isAppbarVisible, - // body: SingleChildScrollView( - // child: Container( - // height: SizeConfig.screenHeight * .9, - // width: SizeConfig.realScreenWidth, - // padding: EdgeInsets.all(20), - // child: Stack( - // children: [ - // TabBar( - // controller: _tabController, - // indicatorColor: Colors.red, - // tabs: [ - // Tab( - // // padding: EdgeInsets.all(6), - // child: AppText(TranslationBase.of(context).family)), - // Tab( - // // padding: EdgeInsets.all(6), - // child: - // AppText(TranslationBase.of(context).request)), - // ], - // ), - // TabBarView( - // controller: _tabController, - // children: [ - // myFamilyDetails(context), - // myFamilyRequest(context) - // ], - // ) - // ], - // )))); } Widget myFamilyDetails(context) { @@ -220,17 +201,14 @@ class _MyFamily extends State with TickerProviderStateMixin { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Expanded(flex: 3, child: Text(TranslationBase.of(context).request)), - Expanded( - flex: 2, - child: Text( - TranslationBase.of(context).switchUser, - )), Expanded( - flex: 1, - child: Text( - TranslationBase.of(context).deleteView, + flex: 3, + child: Texts( + TranslationBase.of(context).request, + textAlign: TextAlign.center, )), + Expanded(flex: 2, child: Texts(TranslationBase.of(context).switchUser, textAlign: TextAlign.center)), + Expanded(flex: 1, child: Texts(TranslationBase.of(context).deleteView, textAlign: TextAlign.center)), ], ), Column( @@ -271,25 +249,25 @@ class _MyFamily extends State with TickerProviderStateMixin { }, ), ), - Expanded( - flex: 1, - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Row( - children: [ - Expanded( - child: DefaultButton( - TranslationBase.of(context).addFamilyMember, - () => {Navigator.of(context).pushNamed(ADD_FAMILY_MEMBER_TYPE)}, - color: Colors.grey[900], - textColor: Colors.white, - )) - ], - ), - ], - ), - ) + // Expanded( + // flex: 1, + // child: Column( + // mainAxisAlignment: MainAxisAlignment.end, + // children: [ + // Row( + // children: [ + // Expanded( + // child: DefaultButton( + // TranslationBase.of(context).addFamilyMember, + // () => {Navigator.of(context).pushNamed(ADD_FAMILY_MEMBER_TYPE)}, + // color: Colors.grey[900], + // textColor: Colors.white, + // )) + // ], + // ), + // ], + // ), + // ) ], )); } @@ -323,49 +301,13 @@ class _MyFamily extends State with TickerProviderStateMixin { else return Column( children: [ - // Padding(padding: EdgeInsets.only(left:10, right:10), - // child: - // Row( - // mainAxisAlignment: - // MainAxisAlignment.spaceBetween, - // children: [ - // Expanded( - // flex: 3, - // child: Text(TranslationBase.of(context) - // .request)), - // Expanded( - // flex: 2, - // child: Text( - // TranslationBase.of(context) - // .switchUser, - // )), - // Expanded( - // flex: 1, - // child: Text( - // TranslationBase.of(context) - // .deleteView, - // )), - // ], - // )), Column(children: [ Padding( padding: EdgeInsets.only(left: 10, right: 10), child: Row(children: [ - Expanded( - flex: 3, - child: AppText( - TranslationBase.of(context) - .name)), - Expanded( - flex: 1, - child: AppText( - TranslationBase.of(context) - .allow)), - Expanded( - flex: 1, - child: AppText( - TranslationBase.of(context) - .reject)), + Expanded(flex: 3, child: AppText(TranslationBase.of(context).name)), + Expanded(flex: 1, child: AppText(TranslationBase.of(context).allow)), + Expanded(flex: 1, child: AppText(TranslationBase.of(context).reject)), ])), Column( children: familyFileProvider.allSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList.map((result) { @@ -472,43 +414,12 @@ class _MyFamily extends State with TickerProviderStateMixin { else return Column( children: [ - // Padding( - // padding:EdgeInsets.only(left:10, right:10), - // child: Row( - // mainAxisAlignment: - // MainAxisAlignment.spaceBetween, - // children: [ - // Expanded( - // flex: 3, - // child: AppText( - // TranslationBase.of(context).request), - // ), - // Expanded( - // flex: 2, - // child: AppText( - // TranslationBase.of(context).switchUser, - // )), - // Expanded( - // flex: 1, - // child: AppText( - // TranslationBase.of(context).deleteView, - // )), - // ], - // )), Column(children: [ Padding( padding: EdgeInsets.only(left: 10, right: 10), child: Row(children: [ - Expanded( - flex: 3, - child: AppText( - TranslationBase.of(context) - .name)), - Expanded( - flex: 1, - child: AppText( - TranslationBase.of(context) - .delete)), + Expanded(flex: 3, child: AppText(TranslationBase.of(context).name)), + Expanded(flex: 1, child: AppText(TranslationBase.of(context).delete)), ])), Column( children: familyFileProvider.allSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList.map((result) { diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index 00efc157..58be5845 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -199,6 +199,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { }); } } + sharedPref.remove(APPOINTMENT_HISTORY_MEDICAL); } if (state == AppLifecycleState.paused) { diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index bfb5a85a..5fd85f72 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -115,7 +115,7 @@ class _ConfirmLogin extends State { physics: BouncingScrollPhysics(), children: [ SizedBox(height: 12), - if (user != null) + if (user != null && isMoreOption == false) Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, @@ -514,7 +514,7 @@ class _ConfirmLogin extends State { authService .checkActivationCode(request, value) .then((result) => { - res = result, + res = result, if (result is Map) { result = CheckActivationCode.fromJson(result),