Compare commits

..

No commits in common. 'de403c449e61176dc5eab44b2f490ab586cb2a32' and '0536d8b978dccf59056a4c78b5e8d23c45e182dd' have entirely different histories.

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

@ -354,10 +354,11 @@ class FeedbackPage extends StatelessWidget {
ImageOptions.showImageOptionsNew( ImageOptions.showImageOptionsNew(
context, context,
true, true,
(String base64Image, file) { (String image, file) {
// base64Image: The base64-encoded image string print(image);
// file: The File object print(file);
contactUsViewModel.addFeedbackAttachment(base64Image, file); // Navigator.pop(context);
contactUsViewModel.addFeedbackAttachment(image);
}, },
); );
}, },
@ -384,16 +385,13 @@ class FeedbackPage extends StatelessWidget {
child: ListView.builder( child: ListView.builder(
padding: EdgeInsets.all(16.h), padding: EdgeInsets.all(16.h),
shrinkWrap: true, shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: contactUsViewModel.feedbackAttachmentList.length, itemCount: contactUsViewModel.feedbackAttachmentList.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
final attachment = contactUsViewModel.feedbackAttachmentList[index];
return Row( return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Expanded( Row(
child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Icon( Icon(
@ -401,14 +399,11 @@ class FeedbackPage extends StatelessWidget {
color: Color(0xff2B353E), color: Color(0xff2B353E),
), ),
SizedBox(width: 8.w), SizedBox(width: 8.w),
Expanded( "Image ${index + 1}".toText14().paddingOnly(bottom: 8.h),
child: attachment.fileName.toText14().paddingOnly(bottom: 8.h),
),
], ],
), ),
),
Utils.buildSvgWithAssets(icon: AppAssets.cancel_circle_icon).onPress(() { Utils.buildSvgWithAssets(icon: AppAssets.cancel_circle_icon).onPress(() {
contactUsViewModel.removeFeedbackAttachment(attachment); contactUsViewModel.removeFeedbackAttachment(contactUsViewModel.feedbackAttachmentList[index]);
}), }),
], ],
); );

@ -48,8 +48,7 @@ class AttachmentOptions extends StatelessWidget {
).onPress(() async { ).onPress(() async {
await onGalleryTap(); await onGalleryTap();
}), }),
// if (!showFilesOption) commented because the ui issue. if (!showFilesOption) SizedBox(height: 16.h),
SizedBox(height: 16.h),
if (showFilesOption) if (showFilesOption)
checkInOptionCard( checkInOptionCard(
appState, appState,

Loading…
Cancel
Save