TF-2764 Enable preview PDF attachment on web platform
This commit is contained in:
@@ -343,20 +343,8 @@ class EmailView extends GetWidget<SingleEmailController> {
|
|||||||
onDragEnd: (details) {
|
onDragEnd: (details) {
|
||||||
controller.mailboxDashBoardController.disableDraggableApp();
|
controller.mailboxDashBoardController.disableDraggableApp();
|
||||||
},
|
},
|
||||||
downloadAttachmentAction: (attachment) {
|
downloadAttachmentAction: (attachment) => controller.handleDownloadAttachmentAction(context, attachment),
|
||||||
if (PlatformInfo.isWeb) {
|
viewAttachmentAction: (attachment) => controller.handleViewAttachmentAction(context, attachment),
|
||||||
controller.downloadAttachmentForWeb(attachment);
|
|
||||||
} else {
|
|
||||||
controller.exportAttachment(context, attachment);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// viewAttachmentAction: (attachment) {
|
|
||||||
// if (PlatformInfo.isWeb) {
|
|
||||||
// controller.viewAttachmentForWeb(attachment);
|
|
||||||
// } else {
|
|
||||||
// controller.exportAttachment(context, attachment);
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
onTapShowAllAttachmentFile: () => controller.openAttachmentList(context, controller.attachments),
|
onTapShowAllAttachmentFile: () => controller.openAttachmentList(context, controller.attachments),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -13,14 +13,14 @@ import 'package:tmail_ui_user/features/email/presentation/extensions/attachment_
|
|||||||
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_item_widget_style.dart';
|
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_item_widget_style.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
||||||
|
|
||||||
typedef OnDownloadAttachmentFileActionClick = void Function(Attachment attachment);
|
typedef OnDownloadAttachmentFileAction = void Function(Attachment attachment);
|
||||||
typedef OnViewAttachmentFileActionClick = void Function(Attachment attachment);
|
typedef OnViewAttachmentFileAction = void Function(Attachment attachment);
|
||||||
|
|
||||||
class AttachmentItemWidget extends StatelessWidget {
|
class AttachmentItemWidget extends StatelessWidget {
|
||||||
|
|
||||||
final Attachment attachment;
|
final Attachment attachment;
|
||||||
final OnDownloadAttachmentFileActionClick? downloadAttachmentAction;
|
final OnDownloadAttachmentFileAction? downloadAttachmentAction;
|
||||||
final OnViewAttachmentFileActionClick? viewAttachmentAction;
|
final OnViewAttachmentFileAction? viewAttachmentAction;
|
||||||
|
|
||||||
final _imagePaths = Get.find<ImagePaths>();
|
final _imagePaths = Get.find<ImagePaths>();
|
||||||
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||||
|
|||||||
+4
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:model/email/attachment.dart';
|
import 'package:model/email/attachment.dart';
|
||||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_list_styles.dart';
|
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_list_styles.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_item_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_action_button_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_action_button_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_bottom_sheet_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_bottom_sheet_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_item_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_item_widget.dart';
|
||||||
@@ -16,6 +17,7 @@ class AttachmentListBottomSheetBodyBuilder extends StatelessWidget {
|
|||||||
final ScrollController scrollController;
|
final ScrollController scrollController;
|
||||||
final OnDownloadAllButtonAction? onDownloadAllButtonAction;
|
final OnDownloadAllButtonAction? onDownloadAllButtonAction;
|
||||||
final OnDownloadAttachmentFileAction? onDownloadAttachmentFileAction;
|
final OnDownloadAttachmentFileAction? onDownloadAttachmentFileAction;
|
||||||
|
final OnViewAttachmentFileAction? onViewAttachmentFileAction;
|
||||||
final OnCancelButtonAction? onCancelButtonAction;
|
final OnCancelButtonAction? onCancelButtonAction;
|
||||||
final OnCloseButtonAction? onCloseButtonAction;
|
final OnCloseButtonAction? onCloseButtonAction;
|
||||||
|
|
||||||
@@ -27,6 +29,7 @@ class AttachmentListBottomSheetBodyBuilder extends StatelessWidget {
|
|||||||
required this.scrollController,
|
required this.scrollController,
|
||||||
this.onDownloadAllButtonAction,
|
this.onDownloadAllButtonAction,
|
||||||
this.onDownloadAttachmentFileAction,
|
this.onDownloadAttachmentFileAction,
|
||||||
|
this.onViewAttachmentFileAction,
|
||||||
this.onCancelButtonAction,
|
this.onCancelButtonAction,
|
||||||
this.onCloseButtonAction,
|
this.onCloseButtonAction,
|
||||||
});
|
});
|
||||||
@@ -100,6 +103,7 @@ class AttachmentListBottomSheetBodyBuilder extends StatelessWidget {
|
|||||||
return AttachmentListItemWidget(
|
return AttachmentListItemWidget(
|
||||||
attachment: attachments[index],
|
attachment: attachments[index],
|
||||||
downloadAttachmentAction: onDownloadAttachmentFileAction,
|
downloadAttachmentAction: onDownloadAttachmentFileAction,
|
||||||
|
viewAttachmentAction: onViewAttachmentFileAction,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
separatorBuilder: (context, index) {
|
separatorBuilder: (context, index) {
|
||||||
|
|||||||
+7
-1
@@ -3,9 +3,9 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:model/email/attachment.dart';
|
import 'package:model/email/attachment.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_list_styles.dart';
|
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_list_styles.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_item_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_bottom_sheet_body_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_bottom_sheet_body_builder.dart';
|
||||||
|
|
||||||
typedef OnDownloadAttachmentFileAction = void Function(Attachment attachment);
|
|
||||||
typedef OnDownloadAllButtonAction = void Function();
|
typedef OnDownloadAllButtonAction = void Function();
|
||||||
typedef OnCancelButtonAction = void Function();
|
typedef OnCancelButtonAction = void Function();
|
||||||
typedef OnCloseButtonAction = void Function();
|
typedef OnCloseButtonAction = void Function();
|
||||||
@@ -20,6 +20,7 @@ class AttachmentListBottomSheetBuilder {
|
|||||||
|
|
||||||
OnDownloadAllButtonAction? _onDownloadAllButtonAction;
|
OnDownloadAllButtonAction? _onDownloadAllButtonAction;
|
||||||
OnDownloadAttachmentFileAction? _onDownloadAttachmentFileAction;
|
OnDownloadAttachmentFileAction? _onDownloadAttachmentFileAction;
|
||||||
|
OnViewAttachmentFileAction? _onViewAttachmentFileAction;
|
||||||
OnCancelButtonAction? _onCancelButtonAction;
|
OnCancelButtonAction? _onCancelButtonAction;
|
||||||
OnCloseButtonAction? _onCloseButtonAction;
|
OnCloseButtonAction? _onCloseButtonAction;
|
||||||
|
|
||||||
@@ -40,6 +41,10 @@ class AttachmentListBottomSheetBuilder {
|
|||||||
_onDownloadAttachmentFileAction = onDownloadAttachmentFileAction;
|
_onDownloadAttachmentFileAction = onDownloadAttachmentFileAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void onViewAttachmentFileAction(OnViewAttachmentFileAction onViewAttachmentFileAction) {
|
||||||
|
_onViewAttachmentFileAction = onViewAttachmentFileAction;
|
||||||
|
}
|
||||||
|
|
||||||
void onCancelButtonAction(OnCancelButtonAction onCancelButtonAction) {
|
void onCancelButtonAction(OnCancelButtonAction onCancelButtonAction) {
|
||||||
_onCancelButtonAction = onCancelButtonAction;
|
_onCancelButtonAction = onCancelButtonAction;
|
||||||
}
|
}
|
||||||
@@ -62,6 +67,7 @@ class AttachmentListBottomSheetBuilder {
|
|||||||
scrollController: _scrollController,
|
scrollController: _scrollController,
|
||||||
onDownloadAllButtonAction: _onDownloadAllButtonAction,
|
onDownloadAllButtonAction: _onDownloadAllButtonAction,
|
||||||
onDownloadAttachmentFileAction: _onDownloadAttachmentFileAction,
|
onDownloadAttachmentFileAction: _onDownloadAttachmentFileAction,
|
||||||
|
onViewAttachmentFileAction: _onViewAttachmentFileAction,
|
||||||
onCancelButtonAction: _onCancelButtonAction,
|
onCancelButtonAction: _onCancelButtonAction,
|
||||||
onCloseButtonAction: _onCloseButtonAction,
|
onCloseButtonAction: _onCloseButtonAction,
|
||||||
),
|
),
|
||||||
|
|||||||
+2
-1
@@ -3,8 +3,9 @@ import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:model/email/attachment.dart';
|
import 'package:model/email/attachment.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_list_styles.dart';
|
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_list_styles.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_item_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_action_button_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_action_button_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_dialog_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_bottom_sheet_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_item_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_item_widget.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
|
||||||
|
|||||||
+2
-6
@@ -3,14 +3,10 @@ import 'package:core/presentation/utils/responsive_utils.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:model/email/attachment.dart';
|
import 'package:model/email/attachment.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_list_styles.dart';
|
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_list_styles.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_item_widget.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_bottom_sheet_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_dialog_body_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_dialog_body_builder.dart';
|
||||||
|
|
||||||
typedef OnDownloadAttachmentFileAction = void Function(Attachment attachment);
|
|
||||||
typedef OnViewAttachmentFileAction = void Function(Attachment attachment);
|
|
||||||
typedef OnDownloadAllButtonAction = void Function();
|
|
||||||
typedef OnCancelButtonAction = void Function();
|
|
||||||
typedef OnCloseButtonAction = void Function();
|
|
||||||
|
|
||||||
class AttachmentListDialogBuilder extends StatelessWidget {
|
class AttachmentListDialogBuilder extends StatelessWidget {
|
||||||
|
|
||||||
final ImagePaths imagePaths;
|
final ImagePaths imagePaths;
|
||||||
|
|||||||
+2
-4
@@ -14,13 +14,11 @@ import 'package:tmail_ui_user/features/email/presentation/styles/attachment/atta
|
|||||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_item_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_item_widget.dart';
|
||||||
|
|
||||||
typedef OnDownloadAttachmentFileActionClick = void Function(Attachment attachment);
|
|
||||||
|
|
||||||
class AttachmentListItemWidget extends StatelessWidget {
|
class AttachmentListItemWidget extends StatelessWidget {
|
||||||
|
|
||||||
final Attachment attachment;
|
final Attachment attachment;
|
||||||
final OnDownloadAttachmentFileActionClick? downloadAttachmentAction;
|
final OnDownloadAttachmentFileAction? downloadAttachmentAction;
|
||||||
final OnViewAttachmentFileActionClick? viewAttachmentAction;
|
final OnViewAttachmentFileAction? viewAttachmentAction;
|
||||||
|
|
||||||
final _imagePaths = Get.find<ImagePaths>();
|
final _imagePaths = Get.find<ImagePaths>();
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ class DraggableAttachmentItemWidget extends StatelessWidget{
|
|||||||
final Attachment attachment;
|
final Attachment attachment;
|
||||||
final OnDragAttachmentStarted? onDragStarted;
|
final OnDragAttachmentStarted? onDragStarted;
|
||||||
final OnDragAttachmentEnd? onDragEnd;
|
final OnDragAttachmentEnd? onDragEnd;
|
||||||
final OnDownloadAttachmentFileActionClick? downloadAttachmentAction;
|
final OnDownloadAttachmentFileAction? downloadAttachmentAction;
|
||||||
final OnViewAttachmentFileActionClick? viewAttachmentAction;
|
final OnViewAttachmentFileAction? viewAttachmentAction;
|
||||||
|
|
||||||
const DraggableAttachmentItemWidget({
|
const DraggableAttachmentItemWidget({
|
||||||
Key? key,
|
Key? key,
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ class EmailAttachmentsWidget extends StatelessWidget {
|
|||||||
final List<Attachment> attachments;
|
final List<Attachment> attachments;
|
||||||
final OnDragAttachmentStarted? onDragStarted;
|
final OnDragAttachmentStarted? onDragStarted;
|
||||||
final OnDragAttachmentEnd? onDragEnd;
|
final OnDragAttachmentEnd? onDragEnd;
|
||||||
final OnDownloadAttachmentFileActionClick? downloadAttachmentAction;
|
final OnDownloadAttachmentFileAction? downloadAttachmentAction;
|
||||||
final OnViewAttachmentFileActionClick? viewAttachmentAction;
|
final OnViewAttachmentFileAction? viewAttachmentAction;
|
||||||
final ResponsiveUtils responsiveUtils;
|
final ResponsiveUtils responsiveUtils;
|
||||||
final ImagePaths imagePaths;
|
final ImagePaths imagePaths;
|
||||||
final OnTapActionCallback? onTapShowAllAttachmentFile;
|
final OnTapActionCallback? onTapShowAllAttachmentFile;
|
||||||
@@ -109,14 +109,13 @@ class EmailAttachmentsWidget extends StatelessWidget {
|
|||||||
onDragStarted: onDragStarted,
|
onDragStarted: onDragStarted,
|
||||||
onDragEnd: onDragEnd,
|
onDragEnd: onDragEnd,
|
||||||
downloadAttachmentAction: downloadAttachmentAction,
|
downloadAttachmentAction: downloadAttachmentAction,
|
||||||
viewAttachmentAction: PlatformInfo.isCanvasKit
|
viewAttachmentAction: viewAttachmentAction,
|
||||||
? viewAttachmentAction
|
|
||||||
: null,
|
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return AttachmentItemWidget(
|
return AttachmentItemWidget(
|
||||||
attachment: attachment,
|
attachment: attachment,
|
||||||
downloadAttachmentAction: downloadAttachmentAction
|
downloadAttachmentAction: downloadAttachmentAction,
|
||||||
|
viewAttachmentAction: viewAttachmentAction,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}).toList(),
|
}).toList(),
|
||||||
|
|||||||
Reference in New Issue
Block a user