TF-3517 Add integration test for case Save draft without Reply-To & reopen it

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-02-25 18:47:38 +07:00
committed by Dat H. Pham
parent bd8c5ccfbf
commit 06b123e518
12 changed files with 201 additions and 54 deletions
@@ -13,6 +13,7 @@ mixin MessageDialogActionMixin {
String message,
String actionName,
{
Key key = const Key('confirm_dialog_action'),
Function? onConfirmAction,
Function? onCancelAction,
OnCloseButtonAction? onCloseButtonAction,
@@ -56,7 +57,7 @@ mixin MessageDialogActionMixin {
titleActionButtonMaxLines: titleActionButtonMaxLines,
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical
)
..key(const Key('confirm_dialog_action'))
..key(key)
..title(title ?? '')
..content(message)
..addIcon(icon)
@@ -108,7 +109,7 @@ mixin MessageDialogActionMixin {
titleActionButtonMaxLines: titleActionButtonMaxLines,
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical
)
..key(const Key('confirm_dialog_action'))
..key(key)
..title(title ?? '')
..content(message)
..addIcon(icon)
@@ -186,7 +187,7 @@ mixin MessageDialogActionMixin {
titleActionButtonMaxLines: titleActionButtonMaxLines,
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical
)
..key(const Key('confirm_dialog_action'))
..key(key)
..title(title ?? '')
..content(message)
..addIcon(icon)
+16 -18
View File
@@ -6,8 +6,8 @@ import 'package:tmail_ui_user/features/base/styles/popup_item_widget_style.dart'
class PopupItemWidget extends StatelessWidget {
final String _iconAction;
final String _nameAction;
final String iconAction;
final String nameAction;
final Color? colorIcon;
final double? iconSize;
final TextStyle? styleName;
@@ -16,20 +16,18 @@ class PopupItemWidget extends StatelessWidget {
final EdgeInsetsGeometry? padding;
final VoidCallback? onCallbackAction;
const PopupItemWidget(
this._iconAction,
this._nameAction,
{
Key? key,
this.colorIcon,
this.iconSize,
this.styleName,
this.isSelected,
this.padding,
this.selectedIcon,
this.onCallbackAction
}
) : super(key: key);
const PopupItemWidget({
Key? key,
required this.iconAction,
required this.nameAction,
this.colorIcon,
this.iconSize,
this.styleName,
this.isSelected,
this.padding,
this.selectedIcon,
this.onCallbackAction,
}) : super(key: key);
@override
Widget build(BuildContext context) {
@@ -44,7 +42,7 @@ class PopupItemWidget extends StatelessWidget {
padding: padding,
child: Row(children: [
SvgPicture.asset(
_iconAction,
iconAction,
width: iconSize ?? PopupItemWidgetStyle.iconSize,
height: iconSize ?? PopupItemWidgetStyle.iconSize,
fit: BoxFit.fill,
@@ -52,7 +50,7 @@ class PopupItemWidget extends StatelessWidget {
),
const SizedBox(width: PopupItemWidgetStyle.space),
Expanded(child: Text(
_nameAction,
nameAction,
style: styleName ?? PopupItemWidgetStyle.labelTextStyle
)),
if (isSelected == true && selectedIcon != null)
@@ -496,8 +496,8 @@ class ComposerView extends GetWidget<ComposerController> {
PopupMenuItem(
padding: EdgeInsets.zero,
child: PopupItemWidget(
controller.imagePaths.icReadReceipt,
AppLocalizations.of(context).requestReadReceipt,
iconAction: controller.imagePaths.icReadReceipt,
nameAction: AppLocalizations.of(context).requestReadReceipt,
styleName: ComposerStyle.popupItemTextStyle,
padding: ComposerStyle.popupItemPadding,
colorIcon: ComposerStyle.popupItemIconColor,
@@ -512,8 +512,8 @@ class ComposerView extends GetWidget<ComposerController> {
PopupMenuItem(
padding: EdgeInsets.zero,
child: PopupItemWidget(
controller.imagePaths.icSaveToDraft,
AppLocalizations.of(context).saveAsDraft,
iconAction: controller.imagePaths.icSaveToDraft,
nameAction: AppLocalizations.of(context).saveAsDraft,
colorIcon: ComposerStyle.popupItemIconColor,
styleName: ComposerStyle.popupItemTextStyle,
padding: ComposerStyle.popupItemPadding,
@@ -526,8 +526,8 @@ class ComposerView extends GetWidget<ComposerController> {
PopupMenuItem(
padding: EdgeInsets.zero,
child: PopupItemWidget(
controller.imagePaths.icDeleteMailbox,
AppLocalizations.of(context).delete,
iconAction: controller.imagePaths.icDeleteMailbox,
nameAction: AppLocalizations.of(context).delete,
styleName: ComposerStyle.popupItemTextStyle,
padding: ComposerStyle.popupItemPadding,
onCallbackAction: () {
@@ -104,8 +104,8 @@ class BottomBarComposerWidget extends StatelessWidget {
),
listButtonAction: [
PopupItemWidget(
imagePaths.icStyleCodeView,
AppLocalizations.of(context).embedCode,
iconAction: imagePaths.icStyleCodeView,
nameAction: AppLocalizations.of(context).embedCode,
styleName: BottomBarComposerWidgetStyle.popupItemTextStyle,
colorIcon: BottomBarComposerWidgetStyle.iconColor,
padding: BottomBarComposerWidgetStyle.popupItemPadding,
@@ -117,8 +117,8 @@ class BottomBarComposerWidget extends StatelessWidget {
},
),
PopupItemWidget(
imagePaths.icReadReceipt,
AppLocalizations.of(context).requestReadReceipt,
iconAction: imagePaths.icReadReceipt,
nameAction: AppLocalizations.of(context).requestReadReceipt,
styleName: BottomBarComposerWidgetStyle.popupItemTextStyle,
padding: BottomBarComposerWidgetStyle.popupItemPadding,
colorIcon: BottomBarComposerWidgetStyle.iconColor,
@@ -131,8 +131,8 @@ class BottomBarComposerWidget extends StatelessWidget {
),
if (_isPrintEnabled)
PopupItemWidget(
imagePaths.icPrinter,
AppLocalizations.of(context).print,
iconAction: imagePaths.icPrinter,
nameAction: AppLocalizations.of(context).print,
colorIcon: BottomBarComposerWidgetStyle.iconColor,
styleName: BottomBarComposerWidgetStyle.popupItemTextStyle,
padding: BottomBarComposerWidgetStyle.popupItemPadding,
@@ -121,8 +121,8 @@ class MobileResponsiveAppBarComposerWidget extends StatelessWidget {
),
listButtonAction: [
PopupItemWidget(
imagePaths.icStyleCodeView,
AppLocalizations.of(context).embedCode,
iconAction: imagePaths.icStyleCodeView,
nameAction: AppLocalizations.of(context).embedCode,
styleName: MobileAppBarComposerWidgetStyle.popupItemTextStyle,
colorIcon: MobileAppBarComposerWidgetStyle.iconColor,
padding: MobileAppBarComposerWidgetStyle.popupItemPadding,
@@ -134,8 +134,8 @@ class MobileResponsiveAppBarComposerWidget extends StatelessWidget {
},
),
PopupItemWidget(
imagePaths.icReadReceipt,
AppLocalizations.of(context).requestReadReceipt,
iconAction: imagePaths.icReadReceipt,
nameAction: AppLocalizations.of(context).requestReadReceipt,
styleName: MobileAppBarComposerWidgetStyle.popupItemTextStyle,
padding: MobileAppBarComposerWidgetStyle.popupItemPadding,
colorIcon: MobileAppBarComposerWidgetStyle.popupItemIconColor,
@@ -148,8 +148,8 @@ class MobileResponsiveAppBarComposerWidget extends StatelessWidget {
),
if (_isPrintEnabled)
PopupItemWidget(
imagePaths.icPrinter,
AppLocalizations.of(context).print,
iconAction: imagePaths.icPrinter,
nameAction: AppLocalizations.of(context).print,
colorIcon: MobileAppBarComposerWidgetStyle.popupItemIconColor,
styleName: MobileAppBarComposerWidgetStyle.popupItemTextStyle,
padding: MobileAppBarComposerWidgetStyle.popupItemPadding,
@@ -159,8 +159,8 @@ class MobileResponsiveAppBarComposerWidget extends StatelessWidget {
},
),
PopupItemWidget(
imagePaths.icSaveToDraft,
AppLocalizations.of(context).saveAsDraft,
iconAction: imagePaths.icSaveToDraft,
nameAction: AppLocalizations.of(context).saveAsDraft,
colorIcon: MobileAppBarComposerWidgetStyle.popupItemIconColor,
styleName: MobileAppBarComposerWidgetStyle.popupItemTextStyle,
padding: MobileAppBarComposerWidgetStyle.popupItemPadding,
@@ -170,8 +170,8 @@ class MobileResponsiveAppBarComposerWidget extends StatelessWidget {
},
),
PopupItemWidget(
imagePaths.icDeleteMailbox,
AppLocalizations.of(context).delete,
iconAction: imagePaths.icDeleteMailbox,
nameAction: AppLocalizations.of(context).delete,
colorIcon: MobileAppBarComposerWidgetStyle.popupItemIconColor,
styleName: MobileAppBarComposerWidgetStyle.popupItemTextStyle,
padding: MobileAppBarComposerWidgetStyle.popupItemPadding,
@@ -565,8 +565,8 @@ class EmailView extends GetWidget<SingleEmailController> {
key: Key('${action.name}_action'),
padding: EdgeInsets.zero,
child: PopupItemWidget(
action.getIcon(controller.imagePaths),
action.getTitle(context),
iconAction: action.getIcon(controller.imagePaths),
nameAction: action.getTitle(context),
colorIcon: AppColor.colorTextButton,
padding: const EdgeInsetsDirectional.only(start: 12),
styleName: const TextStyle(
@@ -315,8 +315,8 @@ mixin MailboxWidgetMixin {
child: Opacity(
opacity: contextMenuItem.isActivated ? 1.0 : 0.3,
child: PopupItemWidget(
contextMenuItem.action.getContextMenuIcon(imagePaths),
contextMenuItem.action.getTitleContextMenu(context),
iconAction: contextMenuItem.action.getContextMenuIcon(imagePaths),
nameAction: contextMenuItem.action.getTitleContextMenu(context),
colorIcon: contextMenuItem.action.getColorContextMenuIcon(),
padding: const EdgeInsetsDirectional.only(start: 12),
iconSize: 24,