From a3a0315a49eae7a3017257cb1e191f9f7b44cb05 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 10 Jun 2025 16:04:47 +0200 Subject: [PATCH] use new dropdown in Business profile --- .../builders/build_employee_list.dart | 25 +++-- .../builders/build_user_list.dart | 25 +++-- .../package_tools/mih_business_details.dart | 11 +- .../package_tools/mih_my_business_user.dart | 11 +- .../profile_business_add.dart | 101 ++++-------------- 5 files changed, 68 insertions(+), 105 deletions(-) diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/builders/build_employee_list.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/builders/build_employee_list.dart index 8f907457..896e501a 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/builders/build_employee_list.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/builders/build_employee_list.dart @@ -3,8 +3,9 @@ import 'dart:convert'; import 'package:flutter_speed_dial/flutter_speed_dial.dart'; import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_alert_services.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart'; +import 'package:mzansi_innovation_hub/mih_apis/mih_validation_services.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_dropdwn_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_form.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart'; @@ -213,22 +214,28 @@ class _BuildEmployeeListState extends State { hintText: "Surname", ), const SizedBox(height: 15.0), - MIHDropdownField( + MihDropdownField( controller: typeController, hintText: "Title", - dropdownOptions: const ["Doctor", "Assistant"], - required: true, + dropdownOptions: const ["Doctor", "Assistant", "Other"], editable: true, - enableSearch: false, + enableSearch: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + requiredText: true, ), const SizedBox(height: 10.0), - MIHDropdownField( + MihDropdownField( controller: accessController, - hintText: "Access", + hintText: "Access Type", dropdownOptions: const ["Full", "Partial"], - required: true, editable: true, - enableSearch: false, + enableSearch: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + requiredText: true, ), const SizedBox(height: 20.0), Center( diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/builders/build_user_list.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/builders/build_user_list.dart index c2709027..be04d1c4 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/builders/build_user_list.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/builders/build_user_list.dart @@ -2,8 +2,9 @@ import 'dart:convert'; import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_alert_services.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart'; +import 'package:mzansi_innovation_hub/mih_apis/mih_validation_services.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_dropdwn_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_form.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart'; @@ -168,22 +169,28 @@ class _BuildUserListState extends State { hintText: "Email", ), const SizedBox(height: 15.0), - MIHDropdownField( + MihDropdownField( controller: typeController, hintText: "Title", - dropdownOptions: const ["Doctor", "Assistant"], - required: true, + dropdownOptions: const ["Doctor", "Assistant", "Other"], editable: true, - enableSearch: false, + enableSearch: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + requiredText: true, ), const SizedBox(height: 10.0), - MIHDropdownField( + MihDropdownField( controller: accessController, - hintText: "Access", + hintText: "Access Type", dropdownOptions: const ["Full", "Partial"], - required: true, editable: true, - enableSearch: false, + enableSearch: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + requiredText: true, ), const SizedBox(height: 15.0), Center( diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart index 0d2773cc..b83a9f3b 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart @@ -6,9 +6,9 @@ import 'package:mzansi_innovation_hub/mih_apis/mih_business_details_apis.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_file_api.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_location_api.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_validation_services.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_dropdwn_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_form.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart'; @@ -304,13 +304,16 @@ class _MihBusinessDetailsState extends State { }, ), const SizedBox(height: 15), - MIHDropdownField( + MihDropdownField( controller: typeController, hintText: "Business Type", dropdownOptions: const ["Doctors Office", "Other"], - required: true, editable: true, - enableSearch: false, + enableSearch: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + requiredText: true, ), const SizedBox(height: 10), MihTextFormField( diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_my_business_user.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_my_business_user.dart index 06d64467..bd94bcd6 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_my_business_user.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_my_business_user.dart @@ -5,9 +5,9 @@ import 'package:mzansi_innovation_hub/mih_apis/mih_alert_services.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_file_api.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_my_business_user_apis.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_validation_services.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_dropdwn_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_form.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart'; @@ -252,13 +252,16 @@ class _MihMyBusinessUserState extends State { ), ), const SizedBox(height: 20), - MIHDropdownField( + MihDropdownField( controller: titleDropdownController, hintText: "Title", dropdownOptions: const ["Doctor", "Assistant", "Other"], - required: true, editable: true, - enableSearch: false, + enableSearch: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + requiredText: true, ), const SizedBox(height: 10), MihTextFormField( diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/profile_business_add.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/profile_business_add.dart index b746bdcb..4e9613de 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/profile_business_add.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/profile_business_add.dart @@ -8,12 +8,12 @@ import 'package:mzansi_innovation_hub/mih_apis/mih_file_api.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_location_api.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_my_business_user_apis.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_validation_services.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_action.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_header.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_layout_builder.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_dropdwn_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_form.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; @@ -66,25 +66,6 @@ class _ProfileBusinessAddState extends State { final _formKey = GlobalKey(); late String env; - // Future uploadSelectedFile( - // PlatformFile file, TextEditingController controller) async { - // var token = await supertokens.getaccesstoken(); - // var request = http2.multipartrequest( - // 'post', uri.parse("${appenviroment.baseapiurl}/minio/upload/file/")); - // request.headers['accept'] = 'application/json'; - // request.headers['authorization'] = 'bearer $token'; - // request.headers['content-type'] = 'multipart/form-data'; - // request.fields['app_id'] = widget.signedinuser.app_id; - // request.fields['folder'] = "business_files"; - // request.files.add(await http2.multipartfile.frombytes('file', file.bytes!, - // filename: file.name.replaceall(regexp(r' '), '-'))); - // var response1 = await request.send(); - // if (response1.statuscode == 200) { - // } else { - // internetconnectionpopup(); - // } - // } - Future uploadFile(String id, PlatformFile? selectedFile) async { print("Inside uploud file method"); int uploadStatusCode = 0; @@ -113,27 +94,8 @@ class _ProfileBusinessAddState extends State { accessController.text, context, ); - // var response = await http.post( - // Uri.parse("$baseAPI/business-user/insert/"), - // headers: { - // "Content-Type": "application/json; charset=UTF-8" - // }, - // body: jsonEncode({ - // "business_id": business_id, - // "app_id": widget.signedInUser.app_id, - // "signature": signtureController.text, - // "sig_path": - // "${widget.signedInUser.app_id}/business_files/${signtureController.text}", - // "title": titleController.text, - // "access": accessController.text, - // }), - // ); print("Status code: $statusCode"); if (statusCode == 201) { - // uploadSelectedFile(selectedSignature, signtureController); - // bool successfullyUploadedFile = - // await uploadFile(business_id, selectedSignature); - // if (successfullyUploadedFile) { Navigator.of(context).pop(); Navigator.of(context).popAndPushNamed( '/', @@ -142,9 +104,6 @@ class _ProfileBusinessAddState extends State { String message = "Your business profile is now live! You can now start connecting with customers and growing your business."; successPopUp(message); - // } else { - // internetConnectionPopUp(); - // } } else { internetConnectionPopUp(); } @@ -165,35 +124,10 @@ class _ProfileBusinessAddState extends State { logonameController.text, context, ); - // var response = await http.post( - // Uri.parse("$baseAPI/business/insert/"), - // headers: { - // "Content-Type": "application/json; charset=UTF-8" - // }, - // body: jsonEncode({ - // "Name": nameController.text, - // "type": typeController.text, - // "registration_no": regController.text, - // "logo_name": logonameController.text, - // "logo_path": - // "${widget.signedInUser.app_id}/business_files/${logonameController.text}", - // "contact_no": contactController.text, - // "bus_email": emailController.text, - // "gps_location": locationController.text, - // "practice_no": practiceNoController.text, - // "vat_no": vatNoController.text, - // }), - // ); print(response.body); if (response.statusCode == 201) { var businessResponse = jsonDecode(response.body); - // bool successfullyUploadedFile = - // await uploadFile(widget.signedInUser.app_id, selectedSignature); - // if (successfullyUploadedFile) { createBusinessUserAPICall(businessResponse['business_id']); - // } else { - // internetConnectionPopUp(); - // } } else { internetConnectionPopUp(); } @@ -370,13 +304,16 @@ class _ProfileBusinessAddState extends State { }, ), const SizedBox(height: 15.0), - MIHDropdownField( + MihDropdownField( controller: typeController, hintText: "Business Type", dropdownOptions: const ["Doctors Office", "Other"], - required: true, editable: true, - enableSearch: false, + enableSearch: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + requiredText: true, ), const SizedBox(height: 10.0), ValueListenableBuilder( @@ -520,13 +457,16 @@ class _ProfileBusinessAddState extends State { .theme .secondaryColor()), const SizedBox(height: 10.0), - MIHDropdownField( + MihDropdownField( controller: titleController, hintText: "Title", - dropdownOptions: const ["Doctor", "Assistant"], - required: true, + dropdownOptions: const ["Doctor", "Assistant", "Other"], editable: true, - enableSearch: false, + enableSearch: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + requiredText: true, ), const SizedBox(height: 10.0), MihTextFormField( @@ -561,13 +501,16 @@ class _ProfileBusinessAddState extends State { }, ), const SizedBox(height: 15.0), - MIHDropdownField( + MihDropdownField( controller: accessController, - hintText: "Access", + hintText: "Access Type", dropdownOptions: const ["Full", "Partial"], - required: true, - editable: false, - enableSearch: false, + editable: true, + enableSearch: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + requiredText: true, ), const SizedBox(height: 20.0), Center(