TF-3691 Support HTML escaping in search snippets

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-04-24 02:33:23 +07:00
committed by Dat H. Pham
parent a8fbc3f9a7
commit ac569387d4
8 changed files with 168 additions and 4 deletions
@@ -4,6 +4,7 @@ import 'package:core/data/constants/constant.dart';
import 'package:core/domain/extensions/datetime_extension.dart';
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/html/html_utils.dart';
import 'package:http_parser/http_parser.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
@@ -185,10 +186,11 @@ extension PresentationEmailExtension on PresentationEmail {
);
}
String? _sanitizeSearchSnippet(String? searchSnippet) => searchSnippet
?.replaceAll('\r', '')
.replaceAll('\n', '')
.replaceAll('\t', '');
String? _sanitizeSearchSnippet(String? searchSnippet) {
if (searchSnippet == null) return null;
return HtmlUtils.unescapeHtml(HtmlUtils.removeWhitespace(searchSnippet));
}
String? get sanitizedSearchSnippetSubject => _sanitizeSearchSnippet(searchSnippetSubject);
String? get sanitizedSearchSnippetPreview => _sanitizeSearchSnippet(searchSnippetPreview);
}
+8
View File
@@ -592,6 +592,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.15.3"
html_unescape:
dependency: transitive
description:
name: html_unescape
sha256: "15362d7a18f19d7b742ef8dcb811f5fd2a2df98db9f80ea393c075189e0b61e3"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
http:
dependency: transitive
description: