diff --git a/core/lib/presentation/views/html_viewer/html_content_viewer_widget.dart b/core/lib/presentation/views/html_viewer/html_content_viewer_widget.dart index 924b6cccc..e39741626 100644 --- a/core/lib/presentation/views/html_viewer/html_content_viewer_widget.dart +++ b/core/lib/presentation/views/html_viewer/html_content_viewer_widget.dart @@ -1,4 +1,5 @@ import 'package:core/core.dart'; +import 'package:easy_web_view/easy_web_view.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; @@ -10,6 +11,7 @@ class HtmlContentViewer extends StatefulWidget { final String contentHtml; final int minHeight; final double widthContent; + final double? heightContent; final Widget? loadingWidget; /// Register this callback if you want a reference to the [InAppWebViewController]. @@ -26,6 +28,7 @@ class HtmlContentViewer extends StatefulWidget { Key? key, required this.contentHtml, required this.widthContent, + this.heightContent, this.minHeight = 100, this.loadingWidget, this.onCreated, @@ -99,18 +102,22 @@ class _HtmlContentViewState extends State { @override Widget build(BuildContext context) { - _documentWidth = widget.widthContent; - return Stack( - alignment: AlignmentDirectional.center, - children: [ - SizedBox( - height: _documentHeight, - width: _documentWidth, - child: _buildWebView(), - ), - if (loading) _buildLoadingView() - ], - ); + if (kIsWeb) { + return _buildWebViewOnBrowser(); + } else { + _documentWidth = widget.widthContent; + return Stack( + alignment: AlignmentDirectional.center, + children: [ + SizedBox( + height: _documentHeight, + width: _documentWidth, + child: _buildWebView(), + ), + if (loading) _buildLoadingView() + ], + ); + } } Widget _buildLoadingView() { @@ -126,6 +133,20 @@ class _HtmlContentViewState extends State { } } + Widget _buildWebViewOnBrowser() { + if (_initialPageContent == null || _initialPageContent?.isEmpty == true) { + return Container(); + } + return EasyWebView( + key: ValueKey('WebViewOnBrowser'), + src: _initialPageContent!, + onLoaded: () => {}, + isHtml: true, + webNavigationDelegate: (_) => WebNavigationDecision.prevent, + height: widget.heightContent, + ); + } + Widget _buildWebView() { if (_initialPageContent == null || _initialPageContent?.isEmpty == true) { return Container(); diff --git a/lib/features/email/presentation/widgets/email_content_item_builder.dart b/lib/features/email/presentation/widgets/email_content_item_builder.dart index c928e90bb..488c4ad39 100644 --- a/lib/features/email/presentation/widgets/email_content_item_builder.dart +++ b/lib/features/email/presentation/widgets/email_content_item_builder.dart @@ -34,6 +34,7 @@ class EmailContentItemBuilder { case EmailContentType.textHtml: return HtmlContentViewer( widthContent: MediaQuery.of(_context).size.width, + heightContent: MediaQuery.of(_context).size.height, contentHtml: _emailContent.content, loadingWidget: loadingWidget, mailtoDelegate: (uri) async {});