@@ -74,6 +74,7 @@ import 'package:tmail_ui_user/features/composer/presentation/model/inline_image.
7474import 'package:tmail_ui_user/features/composer/presentation/model/prefix_recipient_state.dart' ;
7575import 'package:tmail_ui_user/features/composer/presentation/model/screen_display_mode.dart' ;
7676import 'package:tmail_ui_user/features/composer/presentation/styles/composer_style.dart' ;
77+ import 'package:tmail_ui_user/features/composer/presentation/view/editor_view_mixin.dart' ;
7778import 'package:tmail_ui_user/features/composer/presentation/widgets/mobile/from_composer_bottom_sheet_builder.dart' ;
7879import 'package:tmail_ui_user/features/composer/presentation/widgets/saving_message_dialog_view.dart' ;
7980import 'package:tmail_ui_user/features/composer/presentation/widgets/sending_message_dialog_view.dart' ;
@@ -116,7 +117,7 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart';
116117import 'package:tmail_ui_user/main/universal_import/html_stub.dart' as html;
117118
118119class ComposerController extends BaseController
119- with DragDropFileMixin , AutoCompleteResultMixin
120+ with DragDropFileMixin , AutoCompleteResultMixin , EditorViewMixin
120121 implements BeforeReconnectHandler {
121122
122123 final mailboxDashBoardController = Get .find <MailboxDashBoardController >();
@@ -213,7 +214,6 @@ class ComposerController extends BaseController
213214
214215 List <Attachment > initialAttachments = < Attachment > [];
215216 String ? _textEditorWeb;
216- String ? _initTextEditor;
217217 double ? maxWithEditor;
218218 EmailId ? _emailIdEditing;
219219 bool isAttachmentCollapsed = false ;
@@ -225,6 +225,7 @@ class ComposerController extends BaseController
225225 int ? _savedEmailDraftHash;
226226 bool _restoringSignatureButton = false ;
227227 GlobalKey ? responsiveContainerKey;
228+ Worker ? emailContentViewStateWorker;
228229
229230 @visibleForTesting
230231 bool get restoringSignatureButton => _restoringSignatureButton;
@@ -286,7 +287,6 @@ class ComposerController extends BaseController
286287
287288 @override
288289 void onClose () {
289- _initTextEditor = null ;
290290 _textEditorWeb = null ;
291291 dispatchState (Right (UIClosedState ()));
292292 composerArguments.value = null ;
@@ -305,6 +305,8 @@ class ComposerController extends BaseController
305305 responsiveContainerKey = null ;
306306 menuMoreOptionController? .dispose ();
307307 menuMoreOptionController = null ;
308+ emailContentViewStateWorker? .dispose ();
309+ emailContentViewStateWorker = null ;
308310 } else {
309311 richTextMobileTabletController = null ;
310312 }
@@ -441,6 +443,39 @@ class ComposerController extends BaseController
441443 }
442444 });
443445 });
446+
447+ if (PlatformInfo .isWeb) {
448+ emailContentViewStateWorker = ever (emailContentsViewState, (state) {
449+ state? .fold ((_) => null , (success) {
450+ if (success is GetEmailContentSuccess ) {
451+ onChangeTextEditorWeb (success.htmlEmailContent);
452+ } else if (success is TransformHtmlEmailContentSuccess ) {
453+ final arguments = composerArguments.value;
454+ if (arguments == null ||
455+ currentContext == null ||
456+ arguments.presentationEmail == null ) return ;
457+
458+ final emailActionType = arguments.emailActionType;
459+
460+ if (emailActionType == EmailActionType .reply ||
461+ emailActionType == EmailActionType .replyAll ||
462+ emailActionType == EmailActionType .replyToList ||
463+ emailActionType == EmailActionType .forward) {
464+
465+ final emailContentQuoted = getEmailContentQuotedAsHtml (
466+ locale: Localizations .localeOf (currentContext! ),
467+ appLocalizations: AppLocalizations .of (currentContext! ),
468+ emailContent: success.htmlContent,
469+ emailActionType: arguments.emailActionType,
470+ presentationEmail: arguments.presentationEmail!
471+ );
472+
473+ onChangeTextEditorWeb (emailContentQuoted);
474+ }
475+ }
476+ });
477+ });
478+ }
444479 }
445480
446481 void _triggerBrowserEventListener () {
@@ -601,9 +636,6 @@ class ComposerController extends BaseController
601636 }
602637
603638 void onCreatedMobileEditorAction (BuildContext context, HtmlEditorApi editorApi, String ? content) {
604- if (identitySelected.value != null ) {
605- initTextEditor (content);
606- }
607639 richTextMobileTabletController? .htmlEditorApi = editorApi;
608640 richTextMobileTabletController? .richTextController.onCreateHTMLEditor (
609641 editorApi,
@@ -2105,11 +2137,7 @@ class ComposerController extends BaseController
21052137 HtmlEditorApi ? get htmlEditorApi => richTextMobileTabletController? .htmlEditorApi;
21062138
21072139 void onChangeTextEditorWeb (String ? text) {
2108- if (identitySelected.value != null ) {
2109- initTextEditor (text);
2110- }
21112140 _textEditorWeb = text;
2112-
21132141 _initEmailDraftHashAfterSignatureButtonRestored (text);
21142142 }
21152143
@@ -2123,14 +2151,8 @@ class ComposerController extends BaseController
21232151 _initEmailDraftHash ();
21242152 }
21252153
2126- void initTextEditor (String ? text) {
2127- _initTextEditor ?? = text;
2128- }
2129-
21302154 void setSubjectEmail (String subject) => subjectEmail.value = subject;
21312155
2132-
2133-
21342156 void onAttachmentDropZoneListener (Attachment attachment) {
21352157 log ('ComposerController::onAttachmentDropZoneListener: attachment = $attachment ' );
21362158 uploadController.validateTotalSizeAttachmentsBeforeUpload (
0 commit comments