TF-341 Show view flyover for links in Email Detail

This commit is contained in:
dab246
2022-04-12 17:19:07 +07:00
committed by Dat H. Pham
parent b4fd1ce5e5
commit 33c6d01bda
2 changed files with 51 additions and 3 deletions
@@ -1,6 +1,7 @@
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 EnsureRelationNoReferrerTransformer extends DomTransformer {
@@ -17,6 +18,21 @@ class EnsureRelationNoReferrerTransformer extends DomTransformer {
final linkElements = document.getElementsByTagName('a');
await Future.wait(linkElements.map((linkElement) async {
linkElement.attributes['rel'] = 'noopener noreferrer';
final tagClass = linkElement.attributes['class'];
linkElement.attributes['class'] = '$tagClass tooltip';
final url = linkElement.attributes['href'];
final text = linkElement.text;
if (url != null && url.isNotEmpty) {
linkElement.innerHtml = textHasToolTip(text, url);
}
log('EnsureRelationNoReferrerTransformer::process(): ${linkElement.outerHtml}');
}));
}
String textHasToolTip(String text, String? url) {
return '''
${text.isNotEmpty ? text : url}
<span class="tooltiptext">$url</span>
''';
}
}