Fix display block quoted content in composer

This commit is contained in:
dab246
2022-04-14 12:11:28 +07:00
committed by Dat H. Pham
parent 561f8041ea
commit 7f4098522d
6 changed files with 19 additions and 33 deletions
@@ -35,22 +35,6 @@ String generateHtml(String content, {
.tmail-content { .tmail-content {
min-height: ${minHeight ?? 0}px; min-height: ${minHeight ?? 0}px;
min-width: ${minWidth ?? 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 ?? ''} ${styleCSS ?? ''}
</style> </style>
@@ -192,7 +192,6 @@ class ComposerController extends BaseController {
void _initEmail() { void _initEmail() {
final arguments = kIsWeb ? mailboxDashBoardController.routerArguments : Get.arguments; final arguments = kIsWeb ? mailboxDashBoardController.routerArguments : Get.arguments;
if (arguments is ComposerArguments) { if (arguments is ComposerArguments) {
log('ComposerController::_initEmail(): arguments: ${arguments.props}');
composerArguments.value = arguments; composerArguments.value = arguments;
if (arguments.emailActionType == EmailActionType.edit) { if (arguments.emailActionType == EmailActionType.edit) {
_getEmailContentAction(arguments); _getEmailContentAction(arguments);
@@ -310,16 +309,11 @@ class ComposerController extends BaseController {
final headerEmailQuoted = _getHeaderEmailQuoted(Localizations.localeOf(context).toLanguageTag(), arguments); final headerEmailQuoted = _getHeaderEmailQuoted(Localizations.localeOf(context).toLanguageTag(), arguments);
final headerEmailQuotedAsHtml = headerEmailQuoted != null final headerEmailQuotedAsHtml = headerEmailQuoted != null
? AppLocalizations.of(context).header_email_quoted(headerEmailQuoted.value1, headerEmailQuoted.value2) ? AppLocalizations.of(context).header_email_quoted(headerEmailQuoted.value1, headerEmailQuoted.value2).addBlockTag('cite')
.addBlockTag('p', attribute: 'style=\"font-size:14px;font-style:italic;color:#182952;\"')
: ''; : '';
final trustAsHtml = arguments.emailContents final trustAsHtml = arguments.emailContents?.asHtmlString ?? '';
?.map((emailContent) => emailContent.asHtml) final emailQuotedHtml = '<p></br></p>$headerEmailQuotedAsHtml${trustAsHtml.addBlockQuoteTag()}';
.toList()
.join('<br>') ?? '';
final emailQuotedHtml = '<br><br>$headerEmailQuotedAsHtml${trustAsHtml.addBlockQuoteTag()}<br>';
return emailQuotedHtml; return emailQuotedHtml;
} }
@@ -699,9 +693,7 @@ class ComposerController extends BaseController {
String? getEmailContentDraftsAsHtml() { String? getEmailContentDraftsAsHtml() {
final listContents = emailContents.value; final listContents = emailContents.value;
if (listContents != null) { if (listContents != null) {
return listContents.isNotEmpty return listContents.asHtmlString;
? listContents.map((emailContent) => emailContent.content).toList().join('</br>')
: '';
} else { } else {
return null; return null;
} }
@@ -2,7 +2,6 @@ import 'package:core/core.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:filesize/filesize.dart'; import 'package:filesize/filesize.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -294,7 +293,6 @@ class ComposerView extends GetWidget<ComposerController> {
controller.subjectEmail.isNotEmpty == true controller.subjectEmail.isNotEmpty == true
? controller.subjectEmail.value ?? '' ? controller.subjectEmail.value ?? ''
: AppLocalizations.of(context).new_message.capitalizeFirstEach, : AppLocalizations.of(context).new_message.capitalizeFirstEach,
overflow: kIsWeb ? null : TextOverflow.ellipsis,
maxLines: 1, maxLines: 1,
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.black), style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.black),
@@ -470,9 +468,9 @@ class ComposerView extends GetWidget<ComposerController> {
controller: controller.htmlControllerBrowser, controller: controller.htmlControllerBrowser,
htmlEditorOptions: HtmlEditorBrowser.HtmlEditorOptions( htmlEditorOptions: HtmlEditorBrowser.HtmlEditorOptions(
hint: '${AppLocalizations.of(context).hint_compose_email}', hint: '${AppLocalizations.of(context).hint_compose_email}',
initialText: initContent,
darkMode: false, darkMode: false,
), ),
blockQuotedContent: initContent,
htmlToolbarOptions: HtmlEditorBrowser.HtmlToolbarOptions( htmlToolbarOptions: HtmlEditorBrowser.HtmlToolbarOptions(
toolbarPosition: HtmlEditorBrowser.ToolbarPosition.custom toolbarPosition: HtmlEditorBrowser.ToolbarPosition.custom
), ),
@@ -0,0 +1,11 @@
import 'package:model/model.dart';
extension ListEmailContentExtension on List<EmailContent> {
String get asHtmlString {
if (isNotEmpty) {
return map((content) => content.asHtml).join('</br>');
}
return '';
}
}
+1
View File
@@ -55,6 +55,7 @@ export 'extensions/list_email_extension.dart';
export 'extensions/media_type_extension.dart'; export 'extensions/media_type_extension.dart';
export 'extensions/list_attachment_extension.dart'; export 'extensions/list_attachment_extension.dart';
export 'extensions/list_presentation_email_extension.dart'; export 'extensions/list_presentation_email_extension.dart';
export 'extensions/list_email_content_extension.dart';
// Download // Download
export 'download/download_task_id.dart'; export 'download/download_task_id.dart';
+2 -2
View File
@@ -114,7 +114,7 @@ dependencies:
ref: master ref: master
# file_picker # file_picker
file_picker: 4.2.0 file_picker: 4.5.1
# hive # hive
hive: 2.0.4 hive: 2.0.4
@@ -128,7 +128,7 @@ dependencies:
html_editor_enhanced: html_editor_enhanced:
git: git:
url: https://github.com/dab246/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
fk_user_agent: 2.1.0 fk_user_agent: 2.1.0