TF-2827 Only enable print button when email content loaded
This commit is contained in:
@@ -1,12 +1,6 @@
|
|||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:model/email/attachment.dart';
|
import 'package:model/email/attachment.dart';
|
||||||
import 'package:model/extensions/list_email_address_extension.dart';
|
|
||||||
import 'package:model/extensions/presentation_email_extension.dart';
|
|
||||||
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
|
|
||||||
import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
|
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
|
||||||
|
|
||||||
class EmailPrint with EquatableMixin {
|
class EmailPrint with EquatableMixin {
|
||||||
final String appName;
|
final String appName;
|
||||||
@@ -45,30 +39,6 @@ class EmailPrint with EquatableMixin {
|
|||||||
this.replyToAddress,
|
this.replyToAddress,
|
||||||
});
|
});
|
||||||
|
|
||||||
factory EmailPrint.generate({
|
|
||||||
required PrintEmailAction printEmailAction,
|
|
||||||
required EmailLoaded emailLoaded
|
|
||||||
}) {
|
|
||||||
return EmailPrint(
|
|
||||||
appName: AppLocalizations.of(printEmailAction.context).app_name,
|
|
||||||
userName: printEmailAction.userEmail,
|
|
||||||
emailInformation: printEmailAction.email.toEmail(),
|
|
||||||
attachments: emailLoaded.attachments,
|
|
||||||
emailContent: emailLoaded.htmlContent,
|
|
||||||
locale: Localizations.localeOf(printEmailAction.context).toLanguageTag(),
|
|
||||||
fromPrefix: AppLocalizations.of(printEmailAction.context).from_email_address_prefix,
|
|
||||||
toPrefix: AppLocalizations.of(printEmailAction.context).to_email_address_prefix,
|
|
||||||
ccPrefix: AppLocalizations.of(printEmailAction.context).cc_email_address_prefix,
|
|
||||||
bccPrefix: AppLocalizations.of(printEmailAction.context).bcc_email_address_prefix,
|
|
||||||
replyToPrefix: AppLocalizations.of(printEmailAction.context).replyToEmailAddressPrefix,
|
|
||||||
titleAttachment: AppLocalizations.of(printEmailAction.context).attachments.toLowerCase(),
|
|
||||||
toAddress: printEmailAction.email.to?.listEmailAddressToString(isFullEmailAddress: true),
|
|
||||||
ccAddress: printEmailAction.email.cc?.listEmailAddressToString(isFullEmailAddress: true),
|
|
||||||
bccAddress: printEmailAction.email.bcc?.listEmailAddressToString(isFullEmailAddress: true),
|
|
||||||
replyToAddress: printEmailAction.email.replyTo?.listEmailAddressToString(isFullEmailAddress: true),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [
|
List<Object?> get props => [
|
||||||
appName,
|
appName,
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
import 'package:model/email/presentation_email.dart';
|
|
||||||
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
|
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
|
||||||
|
|
||||||
class EmailUIAction extends UIAction {
|
class EmailUIAction extends UIAction {
|
||||||
@@ -26,22 +24,6 @@ class CloseEmailDetailedViewToRedirectToTheInboxAction extends EmailUIAction {}
|
|||||||
|
|
||||||
class CloseEmailDetailedViewAction extends EmailUIAction {}
|
class CloseEmailDetailedViewAction extends EmailUIAction {}
|
||||||
|
|
||||||
class PrintEmailAction extends EmailUIAction {
|
|
||||||
|
|
||||||
final BuildContext context;
|
|
||||||
final String userEmail;
|
|
||||||
final PresentationEmail email;
|
|
||||||
|
|
||||||
PrintEmailAction({
|
|
||||||
required this.context,
|
|
||||||
required this.userEmail,
|
|
||||||
required this.email
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
List<Object?> get props => [context, userEmail, email];
|
|
||||||
}
|
|
||||||
|
|
||||||
class HideEmailContentViewAction extends EmailUIAction {}
|
class HideEmailContentViewAction extends EmailUIAction {}
|
||||||
|
|
||||||
class ShowEmailContentViewAction extends EmailUIAction {}
|
class ShowEmailContentViewAction extends EmailUIAction {}
|
||||||
@@ -29,6 +29,7 @@ import 'package:pointer_interceptor/pointer_interceptor.dart';
|
|||||||
import 'package:share_plus/share_plus.dart';
|
import 'package:share_plus/share_plus.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||||
|
import 'package:tmail_ui_user/features/base/state/button_state.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/exceptions/email_exceptions.dart';
|
import 'package:tmail_ui_user/features/email/domain/exceptions/email_exceptions.dart';
|
||||||
@@ -145,11 +146,11 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
final emailUnsubscribe = Rxn<EmailUnsubscribe>();
|
final emailUnsubscribe = Rxn<EmailUnsubscribe>();
|
||||||
final attachmentsViewState = RxMap<Id, Either<Failure, Success>>();
|
final attachmentsViewState = RxMap<Id, Either<Failure, Success>>();
|
||||||
final isEmailContentHidden = RxBool(false);
|
final isEmailContentHidden = RxBool(false);
|
||||||
|
final currentEmailLoaded = Rxn<EmailLoaded>();
|
||||||
|
|
||||||
EmailId? _currentEmailId;
|
EmailId? _currentEmailId;
|
||||||
Identity? _identitySelected;
|
Identity? _identitySelected;
|
||||||
EmailLoaded? _currentEmailLoaded;
|
ButtonState? _printEmailButtonState;
|
||||||
PrintEmailAction? _printEmailAction;
|
|
||||||
|
|
||||||
final StreamController<Either<Failure, Success>> _downloadProgressStateController =
|
final StreamController<Either<Failure, Success>> _downloadProgressStateController =
|
||||||
StreamController<Either<Failure, Success>>.broadcast();
|
StreamController<Either<Failure, Success>>.broadcast();
|
||||||
@@ -157,8 +158,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
|
|
||||||
PresentationEmail? get currentEmail => mailboxDashBoardController.selectedEmail.value;
|
PresentationEmail? get currentEmail => mailboxDashBoardController.selectedEmail.value;
|
||||||
|
|
||||||
EmailLoaded? get currentEmailLoaded => _currentEmailLoaded;
|
|
||||||
|
|
||||||
bool get calendarEventProcessing => viewState.value.fold(
|
bool get calendarEventProcessing => viewState.value.fold(
|
||||||
(failure) => false,
|
(failure) => false,
|
||||||
(success) => success is CalendarEventReplying || success is StoreEventAttendanceStatusLoading);
|
(success) => success is CalendarEventReplying || success is StoreEventAttendanceStatusLoading);
|
||||||
@@ -499,12 +498,12 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
emailSupervisorController.popEmailQueue(success.emailCurrent?.id);
|
emailSupervisorController.popEmailQueue(success.emailCurrent?.id);
|
||||||
|
|
||||||
_currentEmailLoaded = EmailLoaded(
|
currentEmailLoaded.value = EmailLoaded(
|
||||||
htmlContent: success.htmlEmailContent,
|
htmlContent: success.htmlEmailContent,
|
||||||
attachments: List.of(success.attachments),
|
attachments: List.of(success.attachments),
|
||||||
emailCurrent: success.emailCurrent,
|
emailCurrent: success.emailCurrent,
|
||||||
);
|
);
|
||||||
emailSupervisorController.pushEmailQueue(_currentEmailLoaded!);
|
emailSupervisorController.pushEmailQueue(currentEmailLoaded.value!);
|
||||||
|
|
||||||
if (success.emailCurrent?.id == currentEmail?.id) {
|
if (success.emailCurrent?.id == currentEmail?.id) {
|
||||||
attachments.value = success.attachments;
|
attachments.value = success.attachments;
|
||||||
@@ -543,12 +542,12 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
emailSupervisorController.popEmailQueue(success.emailCurrent?.id);
|
emailSupervisorController.popEmailQueue(success.emailCurrent?.id);
|
||||||
|
|
||||||
_currentEmailLoaded = EmailLoaded(
|
currentEmailLoaded.value = EmailLoaded(
|
||||||
htmlContent: success.htmlEmailContent,
|
htmlContent: success.htmlEmailContent,
|
||||||
attachments: List.of(success.attachments),
|
attachments: List.of(success.attachments),
|
||||||
emailCurrent: success.emailCurrent,
|
emailCurrent: success.emailCurrent,
|
||||||
);
|
);
|
||||||
emailSupervisorController.pushEmailQueue(_currentEmailLoaded!);
|
emailSupervisorController.pushEmailQueue(currentEmailLoaded.value!);
|
||||||
|
|
||||||
if (success.emailCurrent?.id == currentEmail?.id) {
|
if (success.emailCurrent?.id == currentEmail?.id) {
|
||||||
attachments.value = success.attachments;
|
attachments.value = success.attachments;
|
||||||
@@ -567,13 +566,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
emailContents.value = success.htmlEmailContent;
|
emailContents.value = success.htmlEmailContent;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_printEmailAction != null) {
|
|
||||||
_handlePrintEmailWhenEmailContentLoaded(
|
|
||||||
action: _printEmailAction!,
|
|
||||||
emailLoaded: _currentEmailLoaded!
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (PlatformInfo.isMobile) {
|
if (PlatformInfo.isMobile) {
|
||||||
final detailedEmail = DetailedEmail(
|
final detailedEmail = DetailedEmail(
|
||||||
emailId: currentEmail!.id!,
|
emailId: currentEmail!.id!,
|
||||||
@@ -627,12 +619,11 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
|
|
||||||
void _resetToOriginalValue({bool isEmailClosing = false}) {
|
void _resetToOriginalValue({bool isEmailClosing = false}) {
|
||||||
emailContents.value = null;
|
emailContents.value = null;
|
||||||
_currentEmailLoaded = null;
|
currentEmailLoaded.value = null;
|
||||||
attachments.clear();
|
attachments.clear();
|
||||||
attachmentsViewState.value = {};
|
attachmentsViewState.value = {};
|
||||||
blobCalendarEvent.value = null;
|
blobCalendarEvent.value = null;
|
||||||
emailUnsubscribe.value = null;
|
emailUnsubscribe.value = null;
|
||||||
_printEmailAction = null;
|
|
||||||
_identitySelected = null;
|
_identitySelected = null;
|
||||||
if (isEmailClosing) {
|
if (isEmailClosing) {
|
||||||
emailLoadedViewState.value = Right(UIState.idle);
|
emailLoadedViewState.value = Right(UIState.idle);
|
||||||
@@ -1350,10 +1341,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.goToComposer(
|
||||||
ComposerArguments.replyEmail(
|
ComposerArguments.replyEmail(
|
||||||
presentationEmail: presentationEmail,
|
presentationEmail: presentationEmail,
|
||||||
content: _currentEmailLoaded?.htmlContent ?? '',
|
content: currentEmailLoaded.value?.htmlContent ?? '',
|
||||||
mailboxRole: presentationEmail.mailboxContain?.role,
|
mailboxRole: presentationEmail.mailboxContain?.role,
|
||||||
messageId: _currentEmailLoaded?.emailCurrent?.messageId,
|
messageId: currentEmailLoaded.value?.emailCurrent?.messageId,
|
||||||
references: _currentEmailLoaded?.emailCurrent?.references,
|
references: currentEmailLoaded.value?.emailCurrent?.references,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@@ -1361,10 +1352,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.goToComposer(
|
||||||
ComposerArguments.replyAllEmail(
|
ComposerArguments.replyAllEmail(
|
||||||
presentationEmail: presentationEmail,
|
presentationEmail: presentationEmail,
|
||||||
content: _currentEmailLoaded?.htmlContent ?? '',
|
content: currentEmailLoaded.value?.htmlContent ?? '',
|
||||||
mailboxRole: presentationEmail.mailboxContain?.role,
|
mailboxRole: presentationEmail.mailboxContain?.role,
|
||||||
messageId: _currentEmailLoaded?.emailCurrent?.messageId,
|
messageId: currentEmailLoaded.value?.emailCurrent?.messageId,
|
||||||
references: _currentEmailLoaded?.emailCurrent?.references,
|
references: currentEmailLoaded.value?.emailCurrent?.references,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@@ -1372,10 +1363,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
mailboxDashBoardController.goToComposer(
|
mailboxDashBoardController.goToComposer(
|
||||||
ComposerArguments.forwardEmail(
|
ComposerArguments.forwardEmail(
|
||||||
presentationEmail: presentationEmail,
|
presentationEmail: presentationEmail,
|
||||||
content: _currentEmailLoaded?.htmlContent ?? '',
|
content: currentEmailLoaded.value?.htmlContent ?? '',
|
||||||
attachments: attachments,
|
attachments: attachments,
|
||||||
messageId: _currentEmailLoaded?.emailCurrent?.messageId,
|
messageId: currentEmailLoaded.value?.emailCurrent?.messageId,
|
||||||
references: _currentEmailLoaded?.emailCurrent?.references,
|
references: currentEmailLoaded.value?.emailCurrent?.references,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@@ -1478,7 +1469,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
|
|
||||||
void _handleParseCalendarEventFailure(ParseCalendarEventFailure failure) {
|
void _handleParseCalendarEventFailure(ParseCalendarEventFailure failure) {
|
||||||
emailLoadedViewState.value = Left<Failure, Success>(failure);
|
emailLoadedViewState.value = Left<Failure, Success>(failure);
|
||||||
emailContents.value = _currentEmailLoaded?.htmlContent;
|
emailContents.value = currentEmailLoaded.value?.htmlContent;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _enableScrollPageView() {
|
void _enableScrollPageView() {
|
||||||
@@ -1595,26 +1586,34 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _printEmail(BuildContext context, PresentationEmail email) {
|
void _printEmail(BuildContext context, PresentationEmail email) {
|
||||||
if (_printEmailAction != null) {
|
if (_printEmailButtonState == ButtonState.disabled) {
|
||||||
log('SingleEmailController::_printEmail: Print email started');
|
log('SingleEmailController::_printEmail: Print email started');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_printEmailAction = PrintEmailAction(
|
_printEmailButtonState = ButtonState.disabled;
|
||||||
context: context,
|
|
||||||
userEmail: mailboxDashBoardController.userEmail,
|
|
||||||
email: email
|
|
||||||
);
|
|
||||||
consumeState(Stream.value(Right(PrintEmailLoading())));
|
|
||||||
|
|
||||||
if (_currentEmailLoaded == null) {
|
consumeState(
|
||||||
log('SingleEmailController::_printEmail: Email content loading');
|
_printEmailInteractor.execute(
|
||||||
return;
|
EmailPrint(
|
||||||
}
|
appName: AppLocalizations.of(context).app_name,
|
||||||
|
userName: mailboxDashBoardController.userEmail,
|
||||||
_handlePrintEmailWhenEmailContentLoaded(
|
emailInformation: email.toEmail(),
|
||||||
action: _printEmailAction!,
|
attachments: currentEmailLoaded.value!.attachments,
|
||||||
emailLoaded: _currentEmailLoaded!
|
emailContent: currentEmailLoaded.value!.htmlContent,
|
||||||
|
locale: Localizations.localeOf(context).toLanguageTag(),
|
||||||
|
fromPrefix: AppLocalizations.of(context).from_email_address_prefix,
|
||||||
|
toPrefix: AppLocalizations.of(context).to_email_address_prefix,
|
||||||
|
ccPrefix: AppLocalizations.of(context).cc_email_address_prefix,
|
||||||
|
bccPrefix: AppLocalizations.of(context).bcc_email_address_prefix,
|
||||||
|
replyToPrefix: AppLocalizations.of(context).replyToEmailAddressPrefix,
|
||||||
|
titleAttachment: AppLocalizations.of(context).attachments.toLowerCase(),
|
||||||
|
toAddress: email.to?.listEmailAddressToString(isFullEmailAddress: true),
|
||||||
|
ccAddress: email.cc?.listEmailAddressToString(isFullEmailAddress: true),
|
||||||
|
bccAddress: email.bcc?.listEmailAddressToString(isFullEmailAddress: true),
|
||||||
|
replyToAddress: email.replyTo?.listEmailAddressToString(isFullEmailAddress: true),
|
||||||
|
)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1629,11 +1628,11 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _handlePrintEmailSuccess(PrintEmailSuccess success) {
|
void _handlePrintEmailSuccess(PrintEmailSuccess success) {
|
||||||
_printEmailAction = null;
|
_printEmailButtonState = ButtonState.enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _showMessageWhenEmailPrintingFailed(PrintEmailFailure failure) {
|
void _showMessageWhenEmailPrintingFailed(PrintEmailFailure failure) {
|
||||||
_printEmailAction = null;
|
_printEmailButtonState = ButtonState.enabled;
|
||||||
|
|
||||||
if (currentOverlayContext != null && currentContext != null) {
|
if (currentOverlayContext != null && currentContext != null) {
|
||||||
appToast.showToastErrorMessage(
|
appToast.showToastErrorMessage(
|
||||||
@@ -1642,23 +1641,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _handlePrintEmailWhenEmailContentLoaded({
|
|
||||||
required PrintEmailAction action,
|
|
||||||
required EmailLoaded emailLoaded
|
|
||||||
}) {
|
|
||||||
if (action.email.id != emailLoaded.emailCurrent?.id) {
|
|
||||||
log('SingleEmailController::_handlePrintEmailInQueue: Print email action NOT matched email id');
|
|
||||||
_printEmailAction = null;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
consumeState(
|
|
||||||
_printEmailInteractor.execute(
|
|
||||||
EmailPrint.generate(printEmailAction: action, emailLoaded: emailLoaded)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
void onCalendarEventReplyAction(EventActionType eventActionType, EmailId emailId) {
|
void onCalendarEventReplyAction(EventActionType eventActionType, EmailId emailId) {
|
||||||
switch (eventActionType) {
|
switch (eventActionType) {
|
||||||
case EventActionType.yes:
|
case EventActionType.yes:
|
||||||
|
|||||||
@@ -369,7 +369,7 @@ class EmailView extends GetWidget<SingleEmailController> {
|
|||||||
),
|
),
|
||||||
Obx(() => CalendarEventDetailWidget(
|
Obx(() => CalendarEventDetailWidget(
|
||||||
calendarEvent: calendarEvent,
|
calendarEvent: calendarEvent,
|
||||||
emailContent: controller.currentEmailLoaded?.htmlContent ?? '',
|
emailContent: controller.currentEmailLoaded.value?.htmlContent ?? '',
|
||||||
isDraggableAppActive: controller.mailboxDashBoardController.isAttachmentDraggableAppActive,
|
isDraggableAppActive: controller.mailboxDashBoardController.isAttachmentDraggableAppActive,
|
||||||
onOpenComposerAction: controller.openNewComposerAction,
|
onOpenComposerAction: controller.openNewComposerAction,
|
||||||
onOpenNewTabAction: controller.openNewTabAction,
|
onOpenNewTabAction: controller.openNewTabAction,
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import 'package:model/email/email_action_type.dart';
|
|||||||
import 'package:model/email/presentation_email.dart';
|
import 'package:model/email/presentation_email.dart';
|
||||||
import 'package:model/extensions/presentation_mailbox_extension.dart';
|
import 'package:model/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/styles/email_view_app_bar_widget_styles.dart';
|
import 'package:tmail_ui_user/features/email/presentation/styles/email_view_app_bar_widget_styles.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/email_view_back_button.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/email_view_back_button.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
@@ -18,6 +19,7 @@ typedef OnMoreActionClick = void Function(PresentationEmail, RelativeRect?);
|
|||||||
class EmailViewAppBarWidget extends StatelessWidget {
|
class EmailViewAppBarWidget extends StatelessWidget {
|
||||||
final _imagePaths = Get.find<ImagePaths>();
|
final _imagePaths = Get.find<ImagePaths>();
|
||||||
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||||
|
final _singleEmailController = Get.find<SingleEmailController>();
|
||||||
|
|
||||||
final PresentationEmail presentationEmail;
|
final PresentationEmail presentationEmail;
|
||||||
final List<Widget>? optionsWidget;
|
final List<Widget>? optionsWidget;
|
||||||
@@ -99,11 +101,14 @@ class EmailViewAppBarWidget extends StatelessWidget {
|
|||||||
presentationEmail.hasStarred ? EmailActionType.unMarkAsStarred : EmailActionType.markAsStarred
|
presentationEmail.hasStarred ? EmailActionType.unMarkAsStarred : EmailActionType.markAsStarred
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
if (PlatformInfo.isWeb && PlatformInfo.isCanvasKit)
|
Obx(() {
|
||||||
...[
|
if (_singleEmailController.currentEmailLoaded.value != null
|
||||||
const SizedBox(width: EmailViewAppBarWidgetStyles.space),
|
&& PlatformInfo.isWeb
|
||||||
TMailButtonWidget.fromIcon(
|
&& PlatformInfo.isCanvasKit
|
||||||
|
) {
|
||||||
|
return TMailButtonWidget.fromIcon(
|
||||||
icon: _imagePaths.icPrinter,
|
icon: _imagePaths.icPrinter,
|
||||||
|
margin: const EdgeInsetsDirectional.only(start: EmailViewAppBarWidgetStyles.space),
|
||||||
iconSize: EmailViewAppBarWidgetStyles.deleteButtonIconSize,
|
iconSize: EmailViewAppBarWidgetStyles.deleteButtonIconSize,
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
padding: EmailViewAppBarWidgetStyles.buttonPadding,
|
padding: EmailViewAppBarWidgetStyles.buttonPadding,
|
||||||
@@ -112,8 +117,11 @@ class EmailViewAppBarWidget extends StatelessWidget {
|
|||||||
presentationEmail,
|
presentationEmail,
|
||||||
EmailActionType.printAll
|
EmailActionType.printAll
|
||||||
)
|
)
|
||||||
),
|
);
|
||||||
],
|
} else {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
}),
|
||||||
const SizedBox(width: EmailViewAppBarWidgetStyles.space),
|
const SizedBox(width: EmailViewAppBarWidgetStyles.space),
|
||||||
TMailButtonWidget.fromIcon(
|
TMailButtonWidget.fromIcon(
|
||||||
icon: _imagePaths.icDeleteComposer,
|
icon: _imagePaths.icDeleteComposer,
|
||||||
|
|||||||
Reference in New Issue
Block a user