From 7f4098522d2b23706882a06c26f00177d68ef75b Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 14 Apr 2022 12:11:28 +0700 Subject: [PATCH] Fix display block quoted content in composer --- .../utils/html_transformer/html_template.dart | 16 ---------------- .../presentation/composer_controller.dart | 16 ++++------------ .../composer/presentation/composer_view_web.dart | 4 +--- .../extensions/list_email_content_extension.dart | 11 +++++++++++ model/lib/model.dart | 1 + pubspec.yaml | 4 ++-- 6 files changed, 19 insertions(+), 33 deletions(-) create mode 100644 model/lib/extensions/list_email_content_extension.dart diff --git a/core/lib/presentation/utils/html_transformer/html_template.dart b/core/lib/presentation/utils/html_transformer/html_template.dart index 410a4c0de..522dd0968 100644 --- a/core/lib/presentation/utils/html_transformer/html_template.dart +++ b/core/lib/presentation/utils/html_transformer/html_template.dart @@ -35,22 +35,6 @@ String generateHtml(String content, { .tmail-content { min-height: ${minHeight ?? 0}px; min-width: ${minWidth ?? 0}px; - color: #000000; - font-family: Inter; - font-size: 16px; - font-style: normal; - } - table { - width: 100%; - max-width: 100%; - } - td { - padding: 13px; - margin: 0px; - } - th { - padding: 13px; - margin: 0px; } ${styleCSS ?? ''} diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index a016c624e..ea36560bc 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -192,7 +192,6 @@ class ComposerController extends BaseController { void _initEmail() { final arguments = kIsWeb ? mailboxDashBoardController.routerArguments : Get.arguments; if (arguments is ComposerArguments) { - log('ComposerController::_initEmail(): arguments: ${arguments.props}'); composerArguments.value = arguments; if (arguments.emailActionType == EmailActionType.edit) { _getEmailContentAction(arguments); @@ -310,16 +309,11 @@ class ComposerController extends BaseController { final headerEmailQuoted = _getHeaderEmailQuoted(Localizations.localeOf(context).toLanguageTag(), arguments); final headerEmailQuotedAsHtml = headerEmailQuoted != null - ? AppLocalizations.of(context).header_email_quoted(headerEmailQuoted.value1, headerEmailQuoted.value2) - .addBlockTag('p', attribute: 'style=\"font-size:14px;font-style:italic;color:#182952;\"') + ? AppLocalizations.of(context).header_email_quoted(headerEmailQuoted.value1, headerEmailQuoted.value2).addBlockTag('cite') : ''; - final trustAsHtml = arguments.emailContents - ?.map((emailContent) => emailContent.asHtml) - .toList() - .join('
') ?? ''; - - final emailQuotedHtml = '

$headerEmailQuotedAsHtml${trustAsHtml.addBlockQuoteTag()}
'; + final trustAsHtml = arguments.emailContents?.asHtmlString ?? ''; + final emailQuotedHtml = '


$headerEmailQuotedAsHtml${trustAsHtml.addBlockQuoteTag()}'; return emailQuotedHtml; } @@ -699,9 +693,7 @@ class ComposerController extends BaseController { String? getEmailContentDraftsAsHtml() { final listContents = emailContents.value; if (listContents != null) { - return listContents.isNotEmpty - ? listContents.map((emailContent) => emailContent.content).toList().join('
') - : ''; + return listContents.asHtmlString; } else { return null; } diff --git a/lib/features/composer/presentation/composer_view_web.dart b/lib/features/composer/presentation/composer_view_web.dart index 4d13b38f7..a887aa6ca 100644 --- a/lib/features/composer/presentation/composer_view_web.dart +++ b/lib/features/composer/presentation/composer_view_web.dart @@ -2,7 +2,6 @@ import 'package:core/core.dart'; import 'package:file_picker/file_picker.dart'; import 'package:filesize/filesize.dart'; import 'package:flutter/cupertino.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; @@ -294,7 +293,6 @@ class ComposerView extends GetWidget { controller.subjectEmail.isNotEmpty == true ? controller.subjectEmail.value ?? '' : AppLocalizations.of(context).new_message.capitalizeFirstEach, - overflow: kIsWeb ? null : TextOverflow.ellipsis, maxLines: 1, textAlign: TextAlign.center, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.black), @@ -470,9 +468,9 @@ class ComposerView extends GetWidget { controller: controller.htmlControllerBrowser, htmlEditorOptions: HtmlEditorBrowser.HtmlEditorOptions( hint: '${AppLocalizations.of(context).hint_compose_email}', - initialText: initContent, darkMode: false, ), + blockQuotedContent: initContent, htmlToolbarOptions: HtmlEditorBrowser.HtmlToolbarOptions( toolbarPosition: HtmlEditorBrowser.ToolbarPosition.custom ), diff --git a/model/lib/extensions/list_email_content_extension.dart b/model/lib/extensions/list_email_content_extension.dart new file mode 100644 index 000000000..59916d3c8 --- /dev/null +++ b/model/lib/extensions/list_email_content_extension.dart @@ -0,0 +1,11 @@ +import 'package:model/model.dart'; + +extension ListEmailContentExtension on List { + + String get asHtmlString { + if (isNotEmpty) { + return map((content) => content.asHtml).join('
'); + } + return ''; + } +} \ No newline at end of file diff --git a/model/lib/model.dart b/model/lib/model.dart index 4f150db12..af547b579 100644 --- a/model/lib/model.dart +++ b/model/lib/model.dart @@ -55,6 +55,7 @@ export 'extensions/list_email_extension.dart'; export 'extensions/media_type_extension.dart'; export 'extensions/list_attachment_extension.dart'; export 'extensions/list_presentation_email_extension.dart'; +export 'extensions/list_email_content_extension.dart'; // Download export 'download/download_task_id.dart'; diff --git a/pubspec.yaml b/pubspec.yaml index 1c106957f..0da73ec2a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -114,7 +114,7 @@ dependencies: ref: master # file_picker - file_picker: 4.2.0 + file_picker: 4.5.1 # hive hive: 2.0.4 @@ -128,7 +128,7 @@ dependencies: html_editor_enhanced: git: url: https://github.com/dab246/html-editor-enhanced.git - ref: improvements + ref: fix_display_content # fk_user_agent fk_user_agent: 2.1.0