Compare commits

..

No commits in common. 'f43a9d424e3fea5f6945e2cdb328269bf35ad4d4' and '558a957101a84cb34ade470236c59d7d1ba68fe1' have entirely different histories.

@ -310,7 +310,7 @@ class ApiConsts {
static String pomsPaymentResult(int orderId) => '$pomsBaseUrl/api/v1/mobile/orders/$orderId/payment-result'; static String pomsPaymentResult(int orderId) => '$pomsBaseUrl/api/v1/mobile/orders/$orderId/payment-result';
// ************ static values for Api **************** // ************ static values for Api ****************
static final double appVersionID = 21.7; static final double appVersionID = 21.6;
// static final double appVersionID = 50.7; // static final double appVersionID = 50.7;
static final int appChannelId = 3; static final int appChannelId = 3;

@ -18,10 +18,6 @@ class TurnstileService {
// Initialize an instance of invisible Cloudflare Turnstile with your site key // Initialize an instance of invisible Cloudflare Turnstile with your site key
final turnstile = CloudflareTurnstile.invisible( final turnstile = CloudflareTurnstile.invisible(
siteKey: _siteKey, siteKey: _siteKey,
onTimeout: () {},
options: TurnstileOptions(
retryInterval: const Duration(milliseconds: 2000),
),
); );
try { try {

@ -19,12 +19,7 @@ import 'package:hmg_patient_app_new/core/api/api_client.dart';
import 'package:hmg_patient_app_new/core/api_consts.dart'; import 'package:hmg_patient_app_new/core/api_consts.dart';
import 'package:hmg_patient_app_new/core/cache_consts.dart'; import 'package:hmg_patient_app_new/core/cache_consts.dart';
import 'package:hmg_patient_app_new/core/dependencies.dart'; import 'package:hmg_patient_app_new/core/dependencies.dart';
import 'package:hmg_patient_app_new/core/utils/date_util.dart';
import 'package:hmg_patient_app_new/core/utils/utils.dart'; import 'package:hmg_patient_app_new/core/utils/utils.dart';
import 'package:hmg_patient_app_new/features/notifications/models/resp_models/notification_response_model.dart';
import 'package:hmg_patient_app_new/presentation/notifications/notification_details_page.dart';
import 'package:hmg_patient_app_new/services/navigation_service.dart';
import 'package:hmg_patient_app_new/widgets/routes/custom_page_route.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
@ -528,26 +523,6 @@ class PushNotificationHandler {
_incomingCall(remoteMessage.data); _incomingCall(remoteMessage.data);
// showCallkitIncoming(); // showCallkitIncoming();
} else { } else {
NotificationResponseModel notification = NotificationResponseModel();
notification.createdOn = DateUtil.convertDateToString(DateTime.now());
notification.isSentOn = DateUtil.convertDateToString(DateTime.now());
notification.messageTypeData = remoteMessage.data['picture'];
notification.messageType = notification.messageTypeData != null && notification.messageTypeData!.isNotEmpty ? "image" : "";
notification.message = remoteMessage.data['message'];
notification.notificationType = remoteMessage.data["NotificationType"].toString();
if (remoteMessage.data["NotificationType"] == "2") {
notification.videoURL = remoteMessage.data["VideoUrl"];
}
Navigator.of(getIt.get<NavigationService>().navigatorKey.currentContext!).push(
CustomPageRoute(
page: NotificationDetailsPage(
notification: notification,
),
),
);
// GetNotificationsResponseModel notification = new GetNotificationsResponseModel(); // GetNotificationsResponseModel notification = new GetNotificationsResponseModel();
// //
// notification.createdOn = DateUtil.convertDateToString(DateTime.now()); // notification.createdOn = DateUtil.convertDateToString(DateTime.now());

@ -998,10 +998,7 @@ class AuthenticationViewModel extends ChangeNotifier {
sendActivationCodeReq: request, isRegister: checkIsUserComingForRegister(request: payload), languageID: 'er', isFormFamilyFile: isFormFamilyFile); sendActivationCodeReq: request, isRegister: checkIsUserComingForRegister(request: payload), languageID: 'er', isFormFamilyFile: isFormFamilyFile);
resultEither.fold( resultEither.fold(
(failure) async { (failure) async => await _errorHandlerService.handleError(failure: failure),
LoaderBottomSheet.hideLoader();
await _errorHandlerService.handleError(failure: failure);
},
(apiResponse) async { (apiResponse) async {
if (isFormFamilyFile) { if (isFormFamilyFile) {
if (apiResponse.data['PatientShareRequestID'] != null && apiResponse.data['PatientShareRequestID'] == 0 && apiResponse.messageStatus == 1) { if (apiResponse.data['PatientShareRequestID'] != null && apiResponse.data['PatientShareRequestID'] == 0 && apiResponse.messageStatus == 1) {

@ -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,31 +385,25 @@ 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( Icons.attach_file,
Icons.attach_file, color: Color(0xff2B353E),
color: Color(0xff2B353E), ),
), SizedBox(width: 8.w),
SizedBox(width: 8.w), "Image ${index + 1}".toText14().paddingOnly(bottom: 8.h),
Expanded( ],
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]);
}), }),
], ],
); );

@ -1,13 +1,11 @@
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenshot_blocker/flutter_screenshot_blocker.dart'; import 'package:flutter_screenshot_blocker/flutter_screenshot_blocker.dart';
import 'package:hmg_patient_app_new/core/dependencies.dart';
import 'package:hmg_patient_app_new/core/utils/date_util.dart'; import 'package:hmg_patient_app_new/core/utils/date_util.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart'; import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart'; import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart'; import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/notifications/models/resp_models/notification_response_model.dart'; import 'package:hmg_patient_app_new/features/notifications/models/resp_models/notification_response_model.dart';
import 'package:hmg_patient_app_new/features/notifications/notifications_view_model.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart'; import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/theme/colors.dart'; import 'package:hmg_patient_app_new/theme/colors.dart';
import 'package:hmg_patient_app_new/widgets/appbar/collapsing_list_view.dart'; import 'package:hmg_patient_app_new/widgets/appbar/collapsing_list_view.dart';
@ -23,10 +21,9 @@ class NotificationDetailsPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
getIt.get<NotificationsViewModel>().markAsRead(notificationID: notification.id ?? 0);
return ScreenshotBlockerWidget( return ScreenshotBlockerWidget(
blockScreenshots: true, // makes this widget appear black in screenshots blockScreenshots: true, // makes this widget appear black in screenshots
detectScreenshots: true, // listen for screenshot attempts detectScreenshots: true, // listen for screenshot attempts
onScreenshotDetected: (event) { onScreenshotDetected: (event) {
// event.type 'screenshot_taken' or 'screenshot_blocked' // event.type 'screenshot_taken' or 'screenshot_blocked'
// ScaffoldMessenger.of(context).showSnackBar( // ScaffoldMessenger.of(context).showSnackBar(

@ -49,176 +49,187 @@ class _NotificationsListPageState extends State<NotificationsListPage> {
return CollapsingListView( return CollapsingListView(
title: LocaleKeys.notification.tr(context: context), title: LocaleKeys.notification.tr(context: context),
child: Consumer<NotificationsViewModel>(builder: (context, notificationsVM, child) { child: Consumer<NotificationsViewModel>(builder: (context, notificationsVM, child) {
return Column( return Column(
children: [ children: [
Container( Container(
margin: EdgeInsets.symmetric(vertical: 24.h), margin: EdgeInsets.symmetric(vertical: 24.h),
decoration: RoundedRectangleBorder().toSmoothCornerDecoration( decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor, color: AppColors.whiteColor,
borderRadius: 24.h, borderRadius: 24.h,
hasShadow: false, hasShadow: false,
), ),
child: ListView.builder( child: ListView.builder(
itemCount: notificationsVM.isNotificationsLoading itemCount: notificationsVM.isNotificationsLoading
? 4 ? 4
// : notificationsVM.notificationsList.length + (notificationsVM.hasMoreNotifications ? 1 : 0), // : notificationsVM.notificationsList.length + (notificationsVM.hasMoreNotifications ? 1 : 0),
: notificationsVM.notificationsList.length, : notificationsVM.notificationsList.length,
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
padding: EdgeInsetsGeometry.zero, padding: EdgeInsetsGeometry.zero,
itemBuilder: (context, index) { itemBuilder: (context, index) {
if (notificationsVM.isNotificationsLoading) { if (notificationsVM.isNotificationsLoading) {
return LabResultItemView( return LabResultItemView(
onTap: () {}, onTap: () {},
labOrder: null, labOrder: null,
index: index, index: index,
isLoading: true, isLoading: true,
); );
} }
return AnimationConfiguration.staggeredList( return AnimationConfiguration.staggeredList(
position: index, position: index,
duration: const Duration(milliseconds: 500), duration: const Duration(milliseconds: 500),
child: SlideAnimation( child: SlideAnimation(
verticalOffset: 100.0, verticalOffset: 100.0,
child: FadeInAnimation( child: FadeInAnimation(
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
notificationsVM.markAsRead(notificationID: notificationsVM.notificationsList[index].id ?? 0); notificationsVM.markAsRead(notificationID: notificationsVM.notificationsList[index].id ?? 0);
getIt.get<TodoSectionViewModel>().getPatientDashboard(); getIt.get<TodoSectionViewModel>().getPatientDashboard();
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => NotificationDetailsPage( builder: (context) => NotificationDetailsPage(
notification: notificationsVM.notificationsList[index], notification: notificationsVM.notificationsList[index],
),
),
);
},
child: AnimatedContainer(
duration: Duration(milliseconds: 300),
curve: Curves.easeInOut,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(height: 16.h),
// Message row with red dot for unread
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: notificationsVM.notificationsList[index].message!.toText16(
isBold: (notificationsVM.notificationsList[index].isRead == false),
weight: (notificationsVM.notificationsList[index].isRead == false) ? FontWeight.w600 : FontWeight.w400,
),
),
SizedBox(width: 8.w),
// Red dot for unread notifications ONLY
if (notificationsVM.notificationsList[index].isRead == false)
Container(
width: 8.w,
height: 8.w,
decoration: BoxDecoration(
color: Colors.red,
shape: BoxShape.circle,
), ),
), ),
], );
), },
SizedBox(height: 12.h), child: AnimatedContainer(
// First row: Time and Date chips with arrow duration: Duration(milliseconds: 300),
Row( curve: Curves.easeInOut,
children: [ child: Column(
// Time chip with clock icon crossAxisAlignment: CrossAxisAlignment.start,
Container( children: [
padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 4.h), SizedBox(height: 16.h),
decoration: BoxDecoration( // Message row with red dot for unread
color: AppColors.greyColor, Row(
borderRadius: BorderRadius.circular(8), crossAxisAlignment: CrossAxisAlignment.start,
),
child: Directionality(
textDirection: ui.TextDirection.ltr,
child: Row(
mainAxisSize: MainAxisSize.min,
children: [ children: [
Icon(Icons.access_time, size: 12.w, color: AppColors.textColor), Expanded(
SizedBox(width: 4.w), child: notificationsVM.notificationsList[index].message!.toText16(
_formatTime(notificationsVM.notificationsList[index].isSentOn).toText10(weight: FontWeight.w600, color: AppColors.textColor, isEnglishOnly: true), isBold: (notificationsVM.notificationsList[index].isRead == false),
weight: (notificationsVM.notificationsList[index].isRead == false)
? FontWeight.w600
: FontWeight.w400,
),
),
SizedBox(width: 8.w),
// Red dot for unread notifications ONLY
if (notificationsVM.notificationsList[index].isRead == false)
Container(
width: 8.w,
height: 8.w,
decoration: BoxDecoration(
color: Colors.red,
shape: BoxShape.circle,
),
),
], ],
), ),
), SizedBox(height: 12.h),
), // First row: Time and Date chips with arrow
SizedBox(width: 8.w), Row(
// Date chip with calendar icon
Container(
padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 4.h),
decoration: BoxDecoration(
color: AppColors.greyColor,
borderRadius: BorderRadius.circular(8),
),
child: Directionality(
textDirection: ui.TextDirection.ltr,
child: Row(
mainAxisSize: MainAxisSize.min,
children: [ children: [
Icon(Icons.calendar_today, size: 12.w, color: AppColors.textColor), // Time chip with clock icon
SizedBox(width: 4.w), Container(
_formatDate(notificationsVM.notificationsList[index].isSentOn).toText10(weight: FontWeight.w600, color: AppColors.textColor, isEnglishOnly: true), padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 4.h),
decoration: BoxDecoration(
color: AppColors.greyColor,
borderRadius: BorderRadius.circular(8),
),
child: Directionality(
textDirection: ui.TextDirection.ltr,
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.access_time, size: 12.w, color: AppColors.textColor),
SizedBox(width: 4.w),
_formatTime(notificationsVM.notificationsList[index].isSentOn).toText10(
weight: FontWeight.w600,
color: AppColors.textColor,
isEnglishOnly: true
),
],
),
),
),
SizedBox(width: 8.w),
// Date chip with calendar icon
Container(
padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 4.h),
decoration: BoxDecoration(
color: AppColors.greyColor,
borderRadius: BorderRadius.circular(8),
),
child: Directionality(
textDirection: ui.TextDirection.ltr,
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.calendar_today, size: 12.w, color: AppColors.textColor),
SizedBox(width: 4.w),
_formatDate(notificationsVM.notificationsList[index].isSentOn).toText10(
weight: FontWeight.w600,
color: AppColors.textColor,
isEnglishOnly: true
),
],
),
),
),
Spacer(),
// Arrow icon
Transform.flip(
flipX: getIt.get<AppState>().isArabic(),
child: Utils.buildSvgWithAssets(
icon: AppAssets.arrow_forward,
width: 16.w,
height: 16.h,
iconColor: AppColors.greyTextColor,
),
),
], ],
), ),
), // Second row: Contains Image chip (if MessageType is "image")
), if (notificationsVM.notificationsList[index].messageType != null &&
Spacer(), notificationsVM.notificationsList[index].messageType!.toLowerCase() == "image")
// Arrow icon Padding(
Transform.flip( padding: EdgeInsets.only(top: 8.h),
flipX: getIt.get<AppState>().isArabic(), child: Row(
child: Utils.buildSvgWithAssets( children: [
icon: AppAssets.arrow_forward, Container(
width: 16.w, padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 4.h),
height: 16.h, decoration: BoxDecoration(
iconColor: AppColors.greyTextColor, color: AppColors.greyColor,
), borderRadius: BorderRadius.circular(8),
), ),
], child: Row(
), mainAxisSize: MainAxisSize.min,
// Second row: Contains Image chip (if MessageType is "image") children: [
if (notificationsVM.notificationsList[index].messageType != null && notificationsVM.notificationsList[index].messageType!.toLowerCase() == "image") Icon(Icons.image_outlined, size: 12.w, color: AppColors.textColor),
Padding( SizedBox(width: 4.w),
padding: EdgeInsets.only(top: 8.h), LocaleKeys.containsImage.toText10(
child: Row( weight: FontWeight.w600,
children: [ color: AppColors.textColor,
Container( ),
padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 4.h), ],
decoration: BoxDecoration( ),
color: AppColors.greyColor, ),
borderRadius: BorderRadius.circular(8), ],
), ),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.image_outlined, size: 12.w, color: AppColors.textColor),
SizedBox(width: 4.w),
LocaleKeys.containsImage.toText10(
weight: FontWeight.w600,
color: AppColors.textColor,
),
],
), ),
), SizedBox(height: 16.h),
1.divider,
], ],
), ),
), ),
SizedBox(height: 16.h), ),
1.divider, ),
],
), ),
), );
), }).paddingSymmetrical(16.w, 0.h),
), ).paddingSymmetrical(24.w, 0.h),
), SizedBox(height: 16.h),
);
}).paddingSymmetrical(16.w, 0.h),
).paddingSymmetrical(24.w, 0.h),
SizedBox(height: 16.h),
// SizedBox( // SizedBox(
// key: _bottomKey, // key: _bottomKey,
// child: "Show more notifications".toText16( // child: "Show more notifications".toText16(
@ -231,9 +242,9 @@ class _NotificationsListPageState extends State<NotificationsListPage> {
// _scrollToBottom(); // _scrollToBottom();
// }), // }),
SizedBox(height: 24.h), SizedBox(height: 24.h),
], ],
); );
}), }),
); );
} }

@ -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