diff --git a/core/lib/presentation/utils/html_transformer/dom/add_target_blank_in_tag_a_transformers.dart b/core/lib/presentation/utils/html_transformer/dom/add_target_blank_in_tag_a_transformers.dart new file mode 100644 index 000000000..d9454297d --- /dev/null +++ b/core/lib/presentation/utils/html_transformer/dom/add_target_blank_in_tag_a_transformers.dart @@ -0,0 +1,19 @@ +import 'package:core/data/network/dio_client.dart'; +import 'package:core/presentation/utils/html_transformer/base/dom_transformer.dart'; +import 'package:html/dom.dart'; + +class AddTargetBlankInTagATransformer extends DomTransformer { + const AddTargetBlankInTagATransformer(); + + @override + Future process( + Document document, { + Map? mapUrlDownloadCID, + DioClient? dioClient, + }) async { + final elements = document.querySelectorAll('a'); + await Future.wait(elements.map((element) async { + element.attributes['target'] = '_blank'; + })); + } +} diff --git a/core/lib/presentation/utils/html_transformer/message_content_transformer.dart b/core/lib/presentation/utils/html_transformer/message_content_transformer.dart index 66755d4b6..3aaff3a75 100644 --- a/core/lib/presentation/utils/html_transformer/message_content_transformer.dart +++ b/core/lib/presentation/utils/html_transformer/message_content_transformer.dart @@ -16,7 +16,6 @@ class MessageContentTransformer { DioClient? dioClient } ) async { - await _addTargetBlankInTagA(document); await Future.wait([ if (configuration.domTransformers.isNotEmpty) ...configuration.domTransformers.map((domTransformer) async => @@ -27,13 +26,6 @@ class MessageContentTransformer { ]); } - Future _addTargetBlankInTagA(Document document) async { - final elements = document.querySelectorAll('a'); - await Future.wait(elements.map((element) async { - element.attributes['target'] = '_blank'; - })); - } - Future toDocument( String message, { diff --git a/core/lib/presentation/utils/html_transformer/transform_configuration.dart b/core/lib/presentation/utils/html_transformer/transform_configuration.dart index 0df230abd..228cb2065 100644 --- a/core/lib/presentation/utils/html_transformer/transform_configuration.dart +++ b/core/lib/presentation/utils/html_transformer/transform_configuration.dart @@ -1,6 +1,7 @@ import 'package:core/presentation/utils/html_transformer/base/dom_transformer.dart'; import 'package:core/presentation/utils/html_transformer/base/text_transformer.dart'; +import 'package:core/presentation/utils/html_transformer/dom/add_target_blank_in_tag_a_transformers.dart'; import 'package:core/presentation/utils/html_transformer/dom/blockcode_transformers.dart'; import 'package:core/presentation/utils/html_transformer/dom/blockquoted_transformers.dart'; import 'package:core/presentation/utils/html_transformer/dom/image_transformers.dart'; @@ -54,6 +55,7 @@ class TransformConfiguration { SignatureTransformer(), BlockQuotedTransformer(), BlockCodeTransformer(), + AddTargetBlankInTagATransformer(), ImageTransformer(), ];