TF-3918 Fix email text be overlapped in body
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
+35
@@ -0,0 +1,35 @@
|
||||
import 'package:core/data/network/dio_client.dart';
|
||||
import 'package:core/presentation/utils/html_transformer/base/dom_transformer.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:html/dom.dart';
|
||||
|
||||
class NormalizeLineHeightInStyleTransformer extends DomTransformer {
|
||||
const NormalizeLineHeightInStyleTransformer();
|
||||
|
||||
@override
|
||||
Future<void> process({
|
||||
required Document document,
|
||||
required DioClient dioClient,
|
||||
Map<String, String>? mapUrlDownloadCID,
|
||||
}) async {
|
||||
try {
|
||||
final elements = document.querySelectorAll('[style*="line-height"]');
|
||||
|
||||
for (final element in elements) {
|
||||
final originalStyle = element.attributes['style'];
|
||||
if (originalStyle == null) continue;
|
||||
|
||||
final updatedStyle = originalStyle.replaceAllMapped(
|
||||
RegExp(r'line-height\s*:\s*1px\s*;?', caseSensitive: false),
|
||||
(match) => '',
|
||||
);
|
||||
|
||||
if (updatedStyle != originalStyle) {
|
||||
element.attributes['style'] = updatedStyle;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
logError('$runtimeType::process: Exception = $e');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import 'package:core/presentation/utils/html_transformer/dom/hide_draft_signatur
|
||||
import 'package:core/presentation/utils/html_transformer/dom/block_code_transformers.dart';
|
||||
import 'package:core/presentation/utils/html_transformer/dom/block_quoted_transformers.dart';
|
||||
import 'package:core/presentation/utils/html_transformer/dom/image_transformers.dart';
|
||||
import 'package:core/presentation/utils/html_transformer/dom/normalize_line_height_in_style_transformer.dart';
|
||||
import 'package:core/presentation/utils/html_transformer/dom/remove_collapsed_signature_button_transformers.dart';
|
||||
import 'package:core/presentation/utils/html_transformer/dom/remove_lazy_loading_for_background_image_transformers.dart';
|
||||
import 'package:core/presentation/utils/html_transformer/dom/remove_lazy_loading_image_transformers.dart';
|
||||
@@ -46,6 +47,7 @@ class TransformConfiguration {
|
||||
const RemoveTooltipLinkTransformer(),
|
||||
const SignatureTransformer(),
|
||||
const RemoveCollapsedSignatureButtonTransformer(),
|
||||
const NormalizeLineHeightInStyleTransformer(),
|
||||
]);
|
||||
|
||||
factory TransformConfiguration.forReplyForwardEmptyEmail() => TransformConfiguration.fromDomTransformers([
|
||||
@@ -54,7 +56,10 @@ class TransformConfiguration {
|
||||
]);
|
||||
|
||||
factory TransformConfiguration.forDraftsEmail() => TransformConfiguration.create(
|
||||
customDomTransformers: [const ImageTransformer()]
|
||||
customDomTransformers: [
|
||||
const ImageTransformer(),
|
||||
const NormalizeLineHeightInStyleTransformer(),
|
||||
]
|
||||
);
|
||||
factory TransformConfiguration.forEditDraftsEmail() => TransformConfiguration.create(
|
||||
customDomTransformers: [
|
||||
@@ -73,6 +78,7 @@ class TransformConfiguration {
|
||||
const ImageTransformer(),
|
||||
const AddLazyLoadingForBackgroundImageTransformer(),
|
||||
const RemoveCollapsedSignatureButtonTransformer(),
|
||||
const NormalizeLineHeightInStyleTransformer(),
|
||||
]
|
||||
);
|
||||
|
||||
@@ -137,6 +143,7 @@ class TransformConfiguration {
|
||||
const ImageTransformer(),
|
||||
const AddLazyLoadingForBackgroundImageTransformer(),
|
||||
const RemoveCollapsedSignatureButtonTransformer(),
|
||||
const NormalizeLineHeightInStyleTransformer(),
|
||||
];
|
||||
|
||||
static const List<TextTransformer> standardTextTransformers = [
|
||||
|
||||
Reference in New Issue
Block a user