TF-332 Get original email content as html

This commit is contained in:
dab246
2022-07-11 12:31:52 +07:00
committed by Dat H. Pham
parent fa9b14c0d0
commit bce3f0a27a
2 changed files with 36 additions and 7 deletions
@@ -1,6 +1,8 @@
extension HtmlExtension on String {
static const String editorStartTags = '<p><br></p>';
String removeFontSizeZeroPixel() => replaceAll(RegExp('font-size:0px;'), '');
String removeHeightZeroPixel() => replaceAll(RegExp('height:0px;'), '');
@@ -38,11 +40,10 @@ extension HtmlExtension on String {
String toSignatureBlock() =>
'<br class="tmail-break-tag"><div class="tmail-signature">${asSignatureHtml()}</div><br class="tmail-break-tag">';
String removeEditorDefaultSpace() {
return replaceAll('<p><br><br><br></p>', '');
String removeEditorStartTag() {
if (trim() == editorStartTags) {
return '';
}
return this;
}
String addEditorDefaultSpace() {
return '<p><br><br><br></p>';
}
}
}
+28
View File
@@ -1,10 +1,13 @@
import 'package:core/utils/app_logger.dart';
import 'package:equatable/equatable.dart';
import 'package:model/email/email_content_type.dart';
import 'package:model/model.dart';
class EmailContent with EquatableMixin {
static const defaultHtmlTagsWrapContent = '<html><head></head><body></body></html>';
final String content;
final EmailContentType type;
@@ -23,6 +26,31 @@ extension EmailContentExtension on EmailContent {
.replaceAll('\n', '<br/>')
.replaceAll('\n\n', '<br/>');
}
final newContent = _getContentOriginal(content);
return newContent;
}
String _getContentOriginal(String content) {
if (content == EmailContent.defaultHtmlTagsWrapContent ||
content.trim().isEmpty) {
return '';
}
final firstTags = '<html><head></head><body>';
final latestTags = '</body></html>';
if (content.startsWith(firstTags) && content.endsWith(latestTags)) {
final firstIndex = firstTags.length;
final latestIndex = content.length - latestTags.length;
log('EmailContentExtension::_getContentOriginal(): firstIndex: $firstIndex');
log('EmailContentExtension::_getContentOriginal(): latestIndex: $latestIndex');
if (latestIndex > firstIndex) {
final contentOriginal = content.substring(firstIndex, latestIndex);
log('EmailContentExtension::_getContentOriginal(): contentOriginal: $contentOriginal');
return contentOriginal;
}
}
return content;
}
}