Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6137202811 |
@@ -18,6 +18,14 @@ import 'package:url_launcher/url_launcher.dart';
|
|||||||
|
|
||||||
final _dateFmt = DateFormat('EEE, MMM d yyyy, HH:mm');
|
final _dateFmt = DateFormat('EEE, MMM d yyyy, HH:mm');
|
||||||
|
|
||||||
|
void _openLink(String? url, Map<String, String> attrs, dynamic _) {
|
||||||
|
if (url == null) return;
|
||||||
|
final uri = Uri.tryParse(url);
|
||||||
|
if (uri != null) {
|
||||||
|
unawaited(launchUrl(uri, mode: LaunchMode.externalApplication));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class EmailDetailScreen extends ConsumerStatefulWidget {
|
class EmailDetailScreen extends ConsumerStatefulWidget {
|
||||||
const EmailDetailScreen({super.key, required this.emailId});
|
const EmailDetailScreen({super.key, required this.emailId});
|
||||||
final String emailId;
|
final String emailId;
|
||||||
@@ -553,7 +561,11 @@ class _SafeHtmlState extends State<_SafeHtml> {
|
|||||||
(_) => ErrorWidget.builder = prev,
|
(_) => ErrorWidget.builder = prev,
|
||||||
);
|
);
|
||||||
|
|
||||||
return Html(data: widget.data, extensions: widget.extensions);
|
return Html(
|
||||||
|
data: widget.data,
|
||||||
|
extensions: widget.extensions,
|
||||||
|
onLinkTap: _openLink,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import 'package:sharedinbox/core/models/email.dart';
|
|||||||
import 'package:sharedinbox/core/models/undo_action.dart';
|
import 'package:sharedinbox/core/models/undo_action.dart';
|
||||||
import 'package:sharedinbox/core/utils/html_utils.dart';
|
import 'package:sharedinbox/core/utils/html_utils.dart';
|
||||||
import 'package:sharedinbox/di.dart';
|
import 'package:sharedinbox/di.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
final _dateFmt = DateFormat('EEE, MMM d, HH:mm');
|
final _dateFmt = DateFormat('EEE, MMM d, HH:mm');
|
||||||
|
|
||||||
@@ -168,6 +169,18 @@ class _EmailMessageCardState extends ConsumerState<_EmailMessageCard> {
|
|||||||
extensions: [
|
extensions: [
|
||||||
if (!_loadRemoteImages) _BlockRemoteImagesExtension(),
|
if (!_loadRemoteImages) _BlockRemoteImagesExtension(),
|
||||||
],
|
],
|
||||||
|
onLinkTap: (url, _, __) {
|
||||||
|
if (url == null) return;
|
||||||
|
final uri = Uri.tryParse(url);
|
||||||
|
if (uri != null) {
|
||||||
|
unawaited(
|
||||||
|
launchUrl(
|
||||||
|
uri,
|
||||||
|
mode: LaunchMode.externalApplication,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
),
|
),
|
||||||
] else
|
] else
|
||||||
SelectableText(
|
SelectableText(
|
||||||
|
|||||||
Reference in New Issue
Block a user