|
|
|
|
@ -15,6 +15,19 @@ import 'package:hmg_patient_app_new/services/error_handler_service.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/widgets/loader/bottomsheet_loader.dart';
|
|
|
|
|
import 'package:permission_handler/permission_handler.dart';
|
|
|
|
|
|
|
|
|
|
/// Class to store feedback attachment data
|
|
|
|
|
class FeedbackAttachment {
|
|
|
|
|
final String base64String;
|
|
|
|
|
final File file;
|
|
|
|
|
final String fileName;
|
|
|
|
|
|
|
|
|
|
FeedbackAttachment({
|
|
|
|
|
required this.base64String,
|
|
|
|
|
required this.file,
|
|
|
|
|
required this.fileName,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class ContactUsViewModel extends ChangeNotifier {
|
|
|
|
|
ContactUsRepo contactUsRepo;
|
|
|
|
|
ErrorHandlerService errorHandlerService;
|
|
|
|
|
@ -35,7 +48,7 @@ class ContactUsViewModel extends ChangeNotifier {
|
|
|
|
|
|
|
|
|
|
String? chatRequestID;
|
|
|
|
|
|
|
|
|
|
List<String> feedbackAttachmentList = [];
|
|
|
|
|
List<FeedbackAttachment> feedbackAttachmentList = [];
|
|
|
|
|
|
|
|
|
|
List<COCItem> cocItemsList = [];
|
|
|
|
|
bool isCOCItemsListLoading = false;
|
|
|
|
|
@ -168,13 +181,20 @@ class ContactUsViewModel extends ChangeNotifier {
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
addFeedbackAttachment(String attachmentPath) {
|
|
|
|
|
feedbackAttachmentList.add(attachmentPath);
|
|
|
|
|
addFeedbackAttachment(String base64String, File file) {
|
|
|
|
|
// Extract filename from file path
|
|
|
|
|
final fileName = file.path.split('/').last;
|
|
|
|
|
|
|
|
|
|
feedbackAttachmentList.add(FeedbackAttachment(
|
|
|
|
|
base64String: base64String,
|
|
|
|
|
file: file,
|
|
|
|
|
fileName: fileName,
|
|
|
|
|
));
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
removeFeedbackAttachment(String attachmentPath) {
|
|
|
|
|
feedbackAttachmentList.remove(attachmentPath);
|
|
|
|
|
removeFeedbackAttachment(FeedbackAttachment attachment) {
|
|
|
|
|
feedbackAttachmentList.remove(attachment);
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -282,7 +302,7 @@ class ContactUsViewModel extends ChangeNotifier {
|
|
|
|
|
|
|
|
|
|
Future<void> insertCOCItem({required String subject, required String message, Function(dynamic)? onSuccess, Function(String)? onError}) async {
|
|
|
|
|
RequestInsertCOCItem requestInsertCOCItem = RequestInsertCOCItem();
|
|
|
|
|
requestInsertCOCItem.attachment = feedbackAttachmentList.isNotEmpty ? feedbackAttachmentList.first : "";
|
|
|
|
|
requestInsertCOCItem.attachment = feedbackAttachmentList.isNotEmpty ? feedbackAttachmentList.first.base64String : "";
|
|
|
|
|
requestInsertCOCItem.title = subject;
|
|
|
|
|
requestInsertCOCItem.details = message;
|
|
|
|
|
requestInsertCOCItem.cOCTypeName = selectedFeedbackType.id.toString();
|
|
|
|
|
@ -291,7 +311,7 @@ class ContactUsViewModel extends ChangeNotifier {
|
|
|
|
|
requestInsertCOCItem.isUserLoggedIn = true;
|
|
|
|
|
requestInsertCOCItem.projectID = 0;
|
|
|
|
|
requestInsertCOCItem.patientName = "${appState.getAuthenticatedUser()!.firstName!} ${appState.getAuthenticatedUser()!.lastName!}";
|
|
|
|
|
requestInsertCOCItem.fileName = "Image 1";
|
|
|
|
|
requestInsertCOCItem.fileName = feedbackAttachmentList.isNotEmpty ? feedbackAttachmentList.first.fileName : "";
|
|
|
|
|
requestInsertCOCItem.appVersion = ApiConsts.appVersionID;
|
|
|
|
|
requestInsertCOCItem.uILanguage = appState.isArabic() ? "ar" : "en";
|
|
|
|
|
requestInsertCOCItem.browserInfo = Platform.localHostname;
|
|
|
|
|
|