TF-330 Fix can not scroll email content in browser
This commit is contained in:
@@ -143,30 +143,33 @@ class EmailView extends GetView {
|
||||
padding: EdgeInsets.only(bottom: 16, left: 16, right: 16, top: 10),
|
||||
alignment: Alignment.center,
|
||||
color: Colors.white,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
Expanded(child: _buildEmailSubject()),
|
||||
_buildEmailTime(context),
|
||||
]),
|
||||
_buildDivider(edgeInsets: EdgeInsets.only(top: 16)),
|
||||
Obx(() => emailController.currentEmail != null
|
||||
? _buildEmailAddress(
|
||||
context,
|
||||
emailController.currentEmail!,
|
||||
emailController.emailAddressExpandMode.value,
|
||||
emailController.isDisplayFullEmailAddress.value)
|
||||
: SizedBox.shrink()),
|
||||
_buildDivider(edgeInsets: EdgeInsets.only(top: 4)),
|
||||
_buildAttachments(context),
|
||||
_buildListEmailContent(),
|
||||
],
|
||||
)
|
||||
child: LayoutBuilder(
|
||||
builder: (BuildContext context, BoxConstraints constraints) {
|
||||
return Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
Expanded(child: _buildEmailSubject()),
|
||||
_buildEmailTime(context),
|
||||
]),
|
||||
_buildDivider(edgeInsets: EdgeInsets.only(top: 16)),
|
||||
Obx(() => emailController.currentEmail != null
|
||||
? _buildEmailAddress(
|
||||
context,
|
||||
emailController.currentEmail!,
|
||||
emailController.emailAddressExpandMode.value,
|
||||
emailController.isDisplayFullEmailAddress.value)
|
||||
: SizedBox.shrink()),
|
||||
_buildDivider(edgeInsets: EdgeInsets.only(top: 4)),
|
||||
_buildAttachments(context),
|
||||
_buildListEmailContent(context, constraints),
|
||||
],
|
||||
);
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
@@ -445,7 +448,7 @@ class EmailView extends GetView {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildListEmailContent() {
|
||||
Widget _buildListEmailContent(BuildContext context, BoxConstraints constraints) {
|
||||
return Obx(() => emailController.viewState.value.fold(
|
||||
(failure) => SizedBox.shrink(),
|
||||
(success) {
|
||||
@@ -453,18 +456,14 @@ class EmailView extends GetView {
|
||||
return EmailContentPlaceHolderLoading(responsiveUtils: responsiveUtils);
|
||||
} else {
|
||||
if (emailController.emailContents.isNotEmpty) {
|
||||
return ListView.builder(
|
||||
primary: false,
|
||||
shrinkWrap: true,
|
||||
padding: EdgeInsets.only(top: 10),
|
||||
key: Key('list_email_content'),
|
||||
itemCount: emailController.emailContents.length,
|
||||
itemBuilder: (context, index) =>
|
||||
EmailContentItemBuilder(
|
||||
return Column(children: [
|
||||
...emailController.emailContents.map((content) => EmailContentItemBuilder(
|
||||
context,
|
||||
emailController.emailContents[index],
|
||||
content,
|
||||
constraints,
|
||||
loadingWidget: EmailContentPlaceHolderLoading(responsiveUtils: responsiveUtils)
|
||||
).build());
|
||||
).build()).toList(),
|
||||
]);
|
||||
} else {
|
||||
return SizedBox.shrink();
|
||||
}
|
||||
|
||||
@@ -9,10 +9,12 @@ class EmailContentItemBuilder {
|
||||
final BuildContext _context;
|
||||
final EmailContent _emailContent;
|
||||
final Widget? loadingWidget;
|
||||
final BoxConstraints _constraints;
|
||||
|
||||
EmailContentItemBuilder(
|
||||
this._context,
|
||||
this._emailContent,
|
||||
this._constraints,
|
||||
{
|
||||
this.loadingWidget
|
||||
}
|
||||
@@ -31,13 +33,19 @@ class EmailContentItemBuilder {
|
||||
}
|
||||
|
||||
Widget _buildItem() {
|
||||
log('EmailContentItemBuilder() | maxWidth: ${_constraints.maxWidth}');
|
||||
log('EmailContentItemBuilder() | heightScreen: ${MediaQuery.of(_context).size.height}');
|
||||
switch(_emailContent.type) {
|
||||
case EmailContentType.textHtml:
|
||||
if (kIsWeb) {
|
||||
return HtmlContentViewerOnWeb(
|
||||
widthContent: MediaQuery.of(_context).size.width,
|
||||
contentHtml: _emailContent.content,
|
||||
controller: HtmlViewerControllerForWeb());
|
||||
return SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: HtmlContentViewerOnWeb(
|
||||
widthContent: _constraints.maxWidth,
|
||||
heightContent: MediaQuery.of(_context).size.height,
|
||||
contentHtml: _emailContent.content,
|
||||
controller: HtmlViewerControllerForWeb()),
|
||||
);
|
||||
} else {
|
||||
return HtmlContentViewer(
|
||||
widthContent: MediaQuery.of(_context).size.width,
|
||||
|
||||
Reference in New Issue
Block a user