TF-3406 Add edit as new email feature

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
DatDang
2025-01-20 19:40:43 +07:00
committed by Dat H. Pham
parent 412431ceaa
commit 3ddb81a8c4
15 changed files with 161 additions and 9 deletions
@@ -39,6 +39,7 @@ import 'package:tmail_ui_user/features/thread/presentation/styles/item_email_til
import 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_builder.dart'
if (dart.library.html) 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_web_builder.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
class SearchEmailView extends GetWidget<SearchEmailController>
with AppLoaderMixin {
@@ -745,6 +746,8 @@ class SearchEmailView extends GetWidget<SearchEmailController>
List<Widget> _contextMenuActionTile(BuildContext context, PresentationEmail email) {
return <Widget>[
_markAsEmailSpamOrUnSpamAction(context, email),
if (email.mailboxContain?.isDrafts == false)
_editAsNewEmailContextMenuItemAction(context, email),
];
}
@@ -777,11 +780,44 @@ class SearchEmailView extends GetWidget<SearchEmailController>
.build();
}
Widget _editAsNewEmailContextMenuItemAction(
BuildContext context,
PresentationEmail email,
) {
return (
EmailActionCupertinoActionSheetActionBuilder(
const Key('edit_as_new_email_action'),
SvgPicture.asset(
controller.imagePaths.icEdit,
width: 24,
height: 24,
fit: BoxFit.fill,
colorFilter: AppColor.colorTextButton.asFilter()
),
AppLocalizations.of(context).editAsNewEmail,
email,
iconLeftPadding: controller.responsiveUtils.isMobile(context)
? const EdgeInsetsDirectional.only(start: 12, end: 16)
: const EdgeInsetsDirectional.only(end: 12),
iconRightPadding: controller.responsiveUtils.isMobile(context)
? const EdgeInsetsDirectional.only(start: 12)
: EdgeInsets.zero)
..onActionClick((email) {
popBack();
controller.editAsNewEmail(email);
})
).build();
}
List<PopupMenuEntry> _popupMenuActionTile(BuildContext context, PresentationEmail email) {
return [
PopupMenuItem(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: _markAsEmailSpamOrUnSpamAction(context, email)),
if (email.mailboxContain?.isDrafts == false)
PopupMenuItem(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: _editAsNewEmailContextMenuItemAction(context, email)),
];
}