TF-313 Apply new ui for AppBar EmailView
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:core/core.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
@@ -11,6 +12,7 @@ import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_w
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_file_tile_builder.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachments_place_holder_loading_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/bottom_bar_mail_widget_builder.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/email_action_cupertino_action_sheet_action_builder.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/email_content_item_builder.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/email_content_place_holder_loading_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/sender_and_receiver_information_tile_builder.dart';
|
||||
@@ -34,6 +36,7 @@ class EmailView extends GetView {
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
_buildAppBar(context),
|
||||
_buildDivider(),
|
||||
Expanded(child: _buildEmailBody(context)),
|
||||
_buildBottomBar(context),
|
||||
]
|
||||
@@ -41,21 +44,32 @@ class EmailView extends GetView {
|
||||
));
|
||||
}
|
||||
|
||||
Widget _buildDivider(){
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Divider(color: AppColor.colorDividerEmailView, height: 0.5));
|
||||
}
|
||||
|
||||
Widget _buildAppBar(BuildContext context) {
|
||||
return Obx(() => Padding(
|
||||
padding: EdgeInsets.only(left: 6, top: 6, right: 6, bottom: 6),
|
||||
padding: EdgeInsets.only(top: 6),
|
||||
child: (AppBarMailWidgetBuilder(
|
||||
context,
|
||||
imagePaths,
|
||||
responsiveUtils,
|
||||
emailController.mailboxDashBoardController.selectedEmail.value)
|
||||
emailController.currentEmail,
|
||||
emailController.currentMailbox)
|
||||
..onBackActionClick(() => emailController.backToThreadView())
|
||||
..onUnreadEmailActionClick((presentationEmail) =>
|
||||
emailController.markAsEmailRead(presentationEmail, ReadActions.markAsUnread))
|
||||
..addOnMoveToMailboxActionClick((presentationEmail) =>
|
||||
emailController.openDestinationPickerView(presentationEmail))
|
||||
..addOnMarkAsStarActionClick((presentationEmail) =>
|
||||
emailController.markAsStarEmail(presentationEmail)))
|
||||
..addOnEmailActionClick((email, action) => emailController.handleEmailAction(email, action))
|
||||
..addOnMoreActionClick((email, position) => responsiveUtils.isMobileDevice(context)
|
||||
? emailController.openMoreMenuEmailAction(
|
||||
context,
|
||||
_emailActionMoreActionTile(context, email),
|
||||
cancelButton: _buildCancelButton(context))
|
||||
: emailController.openMoreMenuEmailActionForTablet(
|
||||
context,
|
||||
position,
|
||||
_popupMenuEmailActionTile(context, email))))
|
||||
.build()));
|
||||
}
|
||||
|
||||
@@ -311,4 +325,41 @@ class EmailView extends GetView {
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
List<Widget> _emailActionMoreActionTile(BuildContext context, PresentationEmail email) {
|
||||
return <Widget>[
|
||||
_unreadEmailAction(context, email),
|
||||
];
|
||||
}
|
||||
|
||||
Widget _buildCancelButton(BuildContext context) {
|
||||
return CupertinoActionSheetAction(
|
||||
child: Text(
|
||||
AppLocalizations.of(context).cancel,
|
||||
style: TextStyle(fontWeight: FontWeight.w500, fontSize: 20, color: AppColor.colorTextButton)),
|
||||
onPressed: () => emailController.closeMoreMenu(),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _unreadEmailAction(BuildContext context, PresentationEmail email) {
|
||||
return (EmailActionCupertinoActionSheetActionBuilder(
|
||||
Key('email_action_unread_action'),
|
||||
SvgPicture.asset(imagePaths.icUnreadEmail, width: 28, height: 28, fit: BoxFit.fill, color: AppColor.colorTextButton),
|
||||
AppLocalizations.of(context).mark_as_unread,
|
||||
email,
|
||||
iconLeftPadding: responsiveUtils.isMobile(context)
|
||||
? EdgeInsets.only(left: 12, right: 16)
|
||||
: EdgeInsets.only(right: 12),
|
||||
iconRightPadding: responsiveUtils.isMobile(context)
|
||||
? EdgeInsets.only(right: 12)
|
||||
: EdgeInsets.zero)
|
||||
..onActionClick((email) => emailController.handleEmailAction(email, EmailActionType.markAsUnread)))
|
||||
.build();
|
||||
}
|
||||
|
||||
List<PopupMenuEntry> _popupMenuEmailActionTile(BuildContext context, PresentationEmail email) {
|
||||
return [
|
||||
PopupMenuItem(padding: EdgeInsets.symmetric(horizontal: 8), child: _unreadEmailAction(context, email)),
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user