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_code_transformers.dart';
|
||||||
import 'package:core/presentation/utils/html_transformer/dom/block_quoted_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/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_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_for_background_image_transformers.dart';
|
||||||
import 'package:core/presentation/utils/html_transformer/dom/remove_lazy_loading_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 RemoveTooltipLinkTransformer(),
|
||||||
const SignatureTransformer(),
|
const SignatureTransformer(),
|
||||||
const RemoveCollapsedSignatureButtonTransformer(),
|
const RemoveCollapsedSignatureButtonTransformer(),
|
||||||
|
const NormalizeLineHeightInStyleTransformer(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
factory TransformConfiguration.forReplyForwardEmptyEmail() => TransformConfiguration.fromDomTransformers([
|
factory TransformConfiguration.forReplyForwardEmptyEmail() => TransformConfiguration.fromDomTransformers([
|
||||||
@@ -54,7 +56,10 @@ class TransformConfiguration {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
factory TransformConfiguration.forDraftsEmail() => TransformConfiguration.create(
|
factory TransformConfiguration.forDraftsEmail() => TransformConfiguration.create(
|
||||||
customDomTransformers: [const ImageTransformer()]
|
customDomTransformers: [
|
||||||
|
const ImageTransformer(),
|
||||||
|
const NormalizeLineHeightInStyleTransformer(),
|
||||||
|
]
|
||||||
);
|
);
|
||||||
factory TransformConfiguration.forEditDraftsEmail() => TransformConfiguration.create(
|
factory TransformConfiguration.forEditDraftsEmail() => TransformConfiguration.create(
|
||||||
customDomTransformers: [
|
customDomTransformers: [
|
||||||
@@ -73,6 +78,7 @@ class TransformConfiguration {
|
|||||||
const ImageTransformer(),
|
const ImageTransformer(),
|
||||||
const AddLazyLoadingForBackgroundImageTransformer(),
|
const AddLazyLoadingForBackgroundImageTransformer(),
|
||||||
const RemoveCollapsedSignatureButtonTransformer(),
|
const RemoveCollapsedSignatureButtonTransformer(),
|
||||||
|
const NormalizeLineHeightInStyleTransformer(),
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -137,6 +143,7 @@ class TransformConfiguration {
|
|||||||
const ImageTransformer(),
|
const ImageTransformer(),
|
||||||
const AddLazyLoadingForBackgroundImageTransformer(),
|
const AddLazyLoadingForBackgroundImageTransformer(),
|
||||||
const RemoveCollapsedSignatureButtonTransformer(),
|
const RemoveCollapsedSignatureButtonTransformer(),
|
||||||
|
const NormalizeLineHeightInStyleTransformer(),
|
||||||
];
|
];
|
||||||
|
|
||||||
static const List<TextTransformer> standardTextTransformers = [
|
static const List<TextTransformer> standardTextTransformers = [
|
||||||
|
|||||||
Reference in New Issue
Block a user