TF-3410 Update confirm dialog

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-01-09 01:43:13 +07:00
committed by Dat H. Pham
parent 352681b60e
commit 700e8bc479
20 changed files with 240 additions and 288 deletions
@@ -242,12 +242,14 @@ extension AppColor on Color {
static const steelGray200 = Color(0xFFAEB7C2); static const steelGray200 = Color(0xFFAEB7C2);
static const blue700 = Color(0xFF208BFF); static const blue700 = Color(0xFF208BFF);
static const steelGray400 = Color(0xFF818C99); static const steelGray400 = Color(0xFF818C99);
static const steelGray600 = Color(0xFF4E5966);
static const blue700 = Color(0xFF208BFF); static const blue700 = Color(0xFF208BFF);
static const blue100 = Color(0xFFDFEEFF); static const blue100 = Color(0xFFDFEEFF);
static const blue400 = Color(0xFF80BDFF); static const blue400 = Color(0xFF80BDFF);
static const m3Tertiary = Color(0xFF8C9CAF); static const m3Tertiary = Color(0xFF8C9CAF);
static const m3Neutral70 = Color(0xFFAEAAAE); static const m3Neutral70 = Color(0xFFAEAAAE);
static const colorF3F6F9 = Color(0xFFF3F6F9); static const colorF3F6F9 = Color(0xFFF3F6F9);
static const m3SurfaceBackground = Color(0xFF1C1B1F);
static const mapGradientColor = [ static const mapGradientColor = [
[Color(0xFF21D4FD), Color(0xFFB721FF)], [Color(0xFF21D4FD), Color(0xFFB721FF)],
@@ -1,25 +1,24 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class ConfirmDialogButton extends StatelessWidget { class ConfirmDialogButton extends StatelessWidget {
final String label; final String label;
final double? borderRadius; final double? borderRadius;
final Color? backgroundColor; final Color backgroundColor;
final EdgeInsetsGeometry? padding; final EdgeInsetsGeometry? padding;
final int? maxLines; final int? maxLines;
final TextStyle? textStyle; final TextStyle textStyle;
final VoidCallback? onTapAction; final VoidCallback? onTapAction;
const ConfirmDialogButton({ const ConfirmDialogButton({
super.key, super.key,
required this.label, required this.label,
required this.textStyle,
required this.backgroundColor,
this.borderRadius, this.borderRadius,
this.backgroundColor,
this.padding, this.padding,
this.maxLines, this.maxLines,
this.textStyle,
this.onTapAction this.onTapAction
}); });
@@ -34,7 +33,7 @@ class ConfirmDialogButton extends StatelessWidget {
width: double.infinity, width: double.infinity,
height: maxLines == 1 ? 44 : null, height: maxLines == 1 ? 44 : null,
decoration: BoxDecoration( decoration: BoxDecoration(
color: backgroundColor ?? AppColor.primaryColor, color: backgroundColor,
borderRadius: BorderRadius.all(Radius.circular(borderRadius ?? 10)), borderRadius: BorderRadius.all(Radius.circular(borderRadius ?? 10)),
), ),
alignment: Alignment.center, alignment: Alignment.center,
@@ -46,12 +45,7 @@ class ConfirmDialogButton extends StatelessWidget {
textAlign: TextAlign.center, textAlign: TextAlign.center,
maxLines: maxLines, maxLines: maxLines,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: textStyle ?? Theme.of(context).textTheme.bodyMedium?.copyWith( style: textStyle
fontSize: 16,
height: 20 / 16,
fontWeight: FontWeight.w500,
color: Colors.white
)
), ),
), ),
), ),
@@ -2,6 +2,7 @@
import 'package:core/core.dart'; import 'package:core/core.dart';
import 'package:core/presentation/views/dialog/confirm_dialog_button.dart'; import 'package:core/presentation/views/dialog/confirm_dialog_button.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
typedef OnConfirmButtonAction = void Function(); typedef OnConfirmButtonAction = void Function();
typedef OnCancelButtonAction = void Function(); typedef OnCancelButtonAction = void Function();
@@ -39,6 +40,7 @@ class ConfirmDialogBuilder {
final List<TextSpan>? listTextSpan; final List<TextSpan>? listTextSpan;
final int? titleActionButtonMaxLines; final int? titleActionButtonMaxLines;
final bool isArrangeActionButtonsVertical; final bool isArrangeActionButtonsVertical;
final bool useIconAsBasicLogo;
OnConfirmButtonAction? _onConfirmButtonAction; OnConfirmButtonAction? _onConfirmButtonAction;
OnCancelButtonAction? _onCancelButtonAction; OnCancelButtonAction? _onCancelButtonAction;
@@ -52,6 +54,7 @@ class ConfirmDialogBuilder {
this.maxWith = double.infinity, this.maxWith = double.infinity,
this.titleActionButtonMaxLines, this.titleActionButtonMaxLines,
this.isArrangeActionButtonsVertical = false, this.isArrangeActionButtonsVertical = false,
this.useIconAsBasicLogo = false,
} }
); );
@@ -165,9 +168,7 @@ class ConfirmDialogBuilder {
key: _key, key: _key,
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(18))), borderRadius: BorderRadius.all(Radius.circular(18))),
insetPadding: _outsideDialogPadding ?? const EdgeInsets.symmetric( insetPadding: _outsideDialogPadding,
horizontal: 24.0,
vertical: 16.0),
alignment: _alignment ?? Alignment.center, alignment: _alignment ?? Alignment.center,
backgroundColor: _backgroundColor, backgroundColor: _backgroundColor,
child: _bodyContent(), child: _bodyContent(),
@@ -181,24 +182,40 @@ class ConfirmDialogBuilder {
constraints: BoxConstraints(maxWidth: maxWith), constraints: BoxConstraints(maxWidth: maxWith),
decoration: const BoxDecoration( decoration: const BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(18))), borderRadius: BorderRadius.all(Radius.circular(18)),
),
margin: _margin, margin: _margin,
padding: const EdgeInsetsDirectional.only(
top: 8,
end: 8,
start: 16,
bottom: 24,
),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
if (_onCloseButtonAction != null) if (_onCloseButtonAction != null)
Align( Align(
alignment: AlignmentDirectional.centerEnd, alignment: AlignmentDirectional.topEnd,
child: TMailButtonWidget.fromIcon( child: TMailButtonWidget.fromIcon(
icon: _imagePath.icCircleClose, icon: _imagePath.icCancel,
iconSize: 30, iconSize: 24,
padding: const EdgeInsets.all(3), iconColor: AppColor.steelGrayA540,
padding: const EdgeInsets.all(5),
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
margin: const EdgeInsetsDirectional.only(top: 16, end: 16), onTapActionCallback: _onCloseButtonAction,
onTapActionCallback: _onCloseButtonAction ),
) )
), else
if (_iconWidget != null) const SizedBox(height: 24),
if (useIconAsBasicLogo)
SvgPicture.asset(
_imagePath.icTMailLogo,
fit: BoxFit.fill,
width: 70,
height: 70,
)
else if (_iconWidget != null)
Container( Container(
margin: _marginIcon ?? EdgeInsets.zero, margin: _marginIcon ?? EdgeInsets.zero,
alignment: Alignment.center, alignment: Alignment.center,
@@ -206,99 +223,139 @@ class ConfirmDialogBuilder {
), ),
if (_title.isNotEmpty) if (_title.isNotEmpty)
Padding( Padding(
padding: _paddingTitle ?? const EdgeInsetsDirectional.only(top: 12, start: 24, end: 24), padding: _paddingTitle
?? const EdgeInsetsDirectional.only(top: 16, end: 8,),
child: Center( child: Center(
child: Text( child: Text(
_title, _title,
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: _styleTitle ?? const TextStyle(fontSize: 20.0, color: AppColor.colorActionDeleteConfirmDialog, fontWeight: FontWeight.w500) style: _styleTitle ?? const TextStyle(
fontSize: 22.0,
color: AppColor.m3SurfaceBackground,
fontWeight: FontWeight.w600,
)
) )
) )
), ),
if (_textContent.isNotEmpty) if (_textContent.isNotEmpty)
Padding( Padding(
padding: _paddingContent ?? const EdgeInsets.symmetric(horizontal: 16, vertical: 24), padding: _paddingContent
?? const EdgeInsetsDirectional.only(top: 16, end: 8,),
child: Center( child: Center(
child: Text(_textContent, child: Text(
textAlign: TextAlign.center, _textContent,
style: _styleContent ?? const TextStyle(fontSize: 17.0, color: AppColor.colorMessageDialog) textAlign: TextAlign.center,
style: _styleContent ?? const TextStyle(
fontSize: 17.0,
color: AppColor.steelGrayA540,
fontWeight: FontWeight.w500,
),
), ),
), ),
) )
else if (listTextSpan != null) else if (listTextSpan != null)
Padding( Padding(
padding: _paddingContent ?? const EdgeInsets.symmetric(horizontal: 16, vertical: 24), padding: _paddingContent ??
const EdgeInsetsDirectional.only(top: 16, end: 8,),
child: Center( child: Center(
child: RichText( child: RichText(
textAlign: TextAlign.center, textAlign: TextAlign.center,
text: TextSpan( text: TextSpan(
style: _styleContent ?? const TextStyle(fontSize: 17.0, color: AppColor.colorMessageDialog), style: _styleContent ?? const TextStyle(
children: listTextSpan fontSize: 17.0,
color: AppColor.steelGrayA540,
fontWeight: FontWeight.w500,
),
children: listTextSpan,
), ),
), ),
), ),
), ),
if (_additionalWidgetContent != null) if (_additionalWidgetContent != null)
Padding( Padding(
padding: const EdgeInsets.symmetric(horizontal: 16), padding:const EdgeInsetsDirectional.only(top: 16, end: 8,),
child: _additionalWidgetContent, child: _additionalWidgetContent,
), ),
if (isArrangeActionButtonsVertical) if (isArrangeActionButtonsVertical)
...[ ...[
if (_cancelText.isNotEmpty) if (_cancelText.isNotEmpty)
Padding( Padding(
padding: const EdgeInsetsDirectional.only(top: 8, start: 16, end: 16), padding: const EdgeInsetsDirectional.only(top: 16, end: 8,),
child: ConfirmDialogButton( child: ConfirmDialogButton(
label: _cancelText, label: _cancelText,
backgroundColor: _colorCancelButton, backgroundColor: _colorCancelButton ?? AppColor.blue700,
borderRadius: _radiusButton, borderRadius: _radiusButton,
textStyle: _styleTextCancelButton, textStyle: _styleTextCancelButton ?? const TextStyle(
padding: _paddingButton, fontSize: 17,
maxLines: titleActionButtonMaxLines, height: 24 / 17,
onTapAction: _onCancelButtonAction), fontWeight: FontWeight.w500,
color: Colors.white,
),
padding: _paddingButton,
maxLines: titleActionButtonMaxLines,
onTapAction: _onCancelButtonAction),
), ),
if (_confirmText.isNotEmpty) if (_confirmText.isNotEmpty)
Padding( Padding(
padding: const EdgeInsetsDirectional.only(top: 8, start: 16, end: 16), padding: const EdgeInsetsDirectional.only(top: 16, end: 8),
child: ConfirmDialogButton( child: ConfirmDialogButton(
label: _confirmText, label: _confirmText,
backgroundColor: _colorConfirmButton, backgroundColor: _colorConfirmButton ?? AppColor.colorF3F6F9,
borderRadius: _radiusButton, borderRadius: _radiusButton,
textStyle: _styleTextConfirmButton, textStyle: _styleTextConfirmButton ?? const TextStyle(
padding: _paddingButton, fontSize: 17,
maxLines: titleActionButtonMaxLines, height: 24 / 17,
onTapAction: _onConfirmButtonAction), fontWeight: FontWeight.w500,
color: AppColor.steelGray600,
),
padding: _paddingButton,
maxLines: titleActionButtonMaxLines,
onTapAction: _onConfirmButtonAction),
), ),
const SizedBox(height: 16),
] ]
else else
Padding( Padding(
padding: _marginButton ?? const EdgeInsetsDirectional.only(bottom: 16, start: 16, end: 16), padding: _marginButton
?? const EdgeInsetsDirectional.only(top: 16, end: 8),
child: Row( child: Row(
children: [ children: [
if (_cancelText.isNotEmpty) if (_cancelText.isNotEmpty)
Expanded(child: ConfirmDialogButton( Expanded(child: ConfirmDialogButton(
label: _cancelText, label: _cancelText,
backgroundColor: _colorCancelButton, backgroundColor: _colorCancelButton ?? AppColor.blue700,
borderRadius: _radiusButton, borderRadius: _radiusButton,
textStyle: _styleTextCancelButton, textStyle: _styleTextCancelButton ?? const TextStyle(
padding: _paddingButton, fontSize: 17,
maxLines: titleActionButtonMaxLines, height: 24 / 17,
onTapAction: _onCancelButtonAction)), fontWeight: FontWeight.w500,
if (_confirmText.isNotEmpty && _cancelText.isNotEmpty) const SizedBox(width: 8), color: Colors.white,
if (_confirmText.isNotEmpty) ),
Expanded(child: ConfirmDialogButton( padding: _paddingButton,
label: _confirmText, maxLines: titleActionButtonMaxLines,
backgroundColor: _colorConfirmButton, onTapAction: _onCancelButtonAction,
borderRadius: _radiusButton, )),
textStyle: _styleTextConfirmButton, if (_confirmText.isNotEmpty && _cancelText.isNotEmpty)
padding: _paddingButton, const SizedBox(width: 16),
maxLines: titleActionButtonMaxLines, if (_confirmText.isNotEmpty)
onTapAction: _onConfirmButtonAction,)) Expanded(child: ConfirmDialogButton(
] label: _confirmText,
)) backgroundColor: _colorConfirmButton ?? AppColor.colorF3F6F9,
] borderRadius: _radiusButton,
) textStyle: _styleTextConfirmButton ?? const TextStyle(
fontSize: 17,
height: 24 / 17,
fontWeight: FontWeight.w500,
color: AppColor.steelGray600,
),
padding: _paddingButton,
maxLines: titleActionButtonMaxLines,
onTapAction: _onConfirmButtonAction,
))
],
),
)
],
),
); );
} }
} }
-1
View File
@@ -241,7 +241,6 @@ abstract class BaseController extends GetxController
alignCenter: true, alignCenter: true,
outsideDismissible: false, outsideDismissible: false,
titleActionButtonMaxLines: 1, titleActionButtonMaxLines: 1,
marginIcon: EdgeInsetsDirectional.zero,
icon: SvgPicture.asset(imagePaths.icTMailLogo, width: 64, height: 64), icon: SvgPicture.asset(imagePaths.icTMailLogo, width: 64, height: 64),
onConfirmAction: _performSaveAndReconnection, onConfirmAction: _performSaveAndReconnection,
onCancelAction: _performReconnection, onCancelAction: _performReconnection,
@@ -8,7 +8,6 @@ import 'package:core/presentation/views/modal_sheets/edit_text_modal_sheet_build
import 'package:core/utils/app_logger.dart'; import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart'; import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
@@ -437,17 +436,10 @@ abstract class BaseMailboxController extends BaseController {
} else { } else {
Get.dialog( Get.dialog(
PointerInterceptor( PointerInterceptor(
child: (ConfirmDialogBuilder(imagePaths) child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('confirm_dialog_delete_mailbox')) ..key(const Key('confirm_dialog_delete_mailbox'))
..title(AppLocalizations.of(context).deleteFolders) ..title(AppLocalizations.of(context).deleteFolders)
..content(AppLocalizations.of(context).message_confirmation_dialog_delete_folder(presentationMailbox.getDisplayName(context))) ..content(AppLocalizations.of(context).message_confirmation_dialog_delete_folder(presentationMailbox.getDisplayName(context)))
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog
))
..onCloseButtonAction(() => popBack()) ..onCloseButtonAction(() => popBack())
..onConfirmButtonAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox)) ..onConfirmButtonAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox))
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()) ..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack())
@@ -19,12 +19,6 @@ mixin LogoutMixin implements MessageDialogActionMixin {
alignCenter: true, alignCenter: true,
outsideDismissible: false, outsideDismissible: false,
titleActionButtonMaxLines: 1, titleActionButtonMaxLines: 1,
titlePadding: const EdgeInsetsDirectional.only(
start: 24,
top: 24,
end: 24,
bottom: 12,
),
messageStyle: const TextStyle( messageStyle: const TextStyle(
color: AppColor.colorTextBody, color: AppColor.colorTextBody,
fontSize: 15, fontSize: 15,
@@ -6,7 +6,6 @@ import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/views/bottom_popup/confirmation_dialog_action_sheet_builder.dart'; import 'package:core/presentation/views/bottom_popup/confirmation_dialog_action_sheet_builder.dart';
import 'package:core/presentation/views/dialog/confirmation_dialog_builder.dart'; import 'package:core/presentation/views/dialog/confirmation_dialog_builder.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:model/extensions/presentation_mailbox_extension.dart'; import 'package:model/extensions/presentation_mailbox_extension.dart';
import 'package:model/mailbox/presentation_mailbox.dart'; import 'package:model/mailbox/presentation_mailbox.dart';
@@ -78,16 +77,10 @@ mixin MailboxActionHandlerMixin {
.show(); .show();
} else { } else {
Get.dialog( Get.dialog(
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('confirm_dialog_empty_trash')) ..key(const Key('confirm_dialog_empty_trash'))
..title(AppLocalizations.of(context).emptyTrash) ..title(AppLocalizations.of(context).emptyTrash)
..content(AppLocalizations.of(context).empty_trash_dialog_message) ..content(AppLocalizations.of(context).empty_trash_dialog_message)
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(popBack) ..onCloseButtonAction(popBack)
..onConfirmButtonAction(AppLocalizations.of(context).delete, () { ..onConfirmButtonAction(AppLocalizations.of(context).delete, () {
popBack(); popBack();
@@ -142,16 +135,10 @@ mixin MailboxActionHandlerMixin {
.show(); .show();
} else { } else {
Get.dialog( Get.dialog(
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('confirm_dialog_empty_spam')) ..key(const Key('confirm_dialog_empty_spam'))
..title(AppLocalizations.of(context).emptySpamFolder) ..title(AppLocalizations.of(context).emptySpamFolder)
..content(AppLocalizations.of(context).emptySpamMessageDialog) ..content(AppLocalizations.of(context).emptySpamMessageDialog)
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(popBack) ..onCloseButtonAction(popBack)
..onConfirmButtonAction(AppLocalizations.of(context).delete_all, () { ..onConfirmButtonAction(AppLocalizations.of(context).delete_all, () {
popBack(); popBack();
@@ -38,41 +38,42 @@ mixin MessageDialogActionMixin {
PopInvokedWithResultCallback? onPopInvoked, PopInvokedWithResultCallback? onPopInvoked,
bool isArrangeActionButtonsVertical = false, bool isArrangeActionButtonsVertical = false,
int? titleActionButtonMaxLines, int? titleActionButtonMaxLines,
EdgeInsetsGeometry? titlePadding, bool useIconAsBasicLogo = false,
} }
) async { ) async {
final responsiveUtils = Get.find<ResponsiveUtils>(); final responsiveUtils = Get.find<ResponsiveUtils>();
final imagePaths = Get.find<ImagePaths>(); final imagePaths = Get.find<ImagePaths>();
final paddingTitle = titlePadding ??
(icon != null
? const EdgeInsetsDirectional.only(top: 24, start: 24, end: 24)
: const EdgeInsetsDirectional.symmetric(horizontal: 24));
if (alignCenter) { if (alignCenter) {
final childWidget = PointerInterceptor( final childWidget = PointerInterceptor(
child: (ConfirmDialogBuilder( child: (ConfirmDialogBuilder(
imagePaths, imagePaths,
listTextSpan: listTextSpan, listTextSpan: listTextSpan,
titleActionButtonMaxLines: titleActionButtonMaxLines, titleActionButtonMaxLines: titleActionButtonMaxLines,
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
useIconAsBasicLogo: useIconAsBasicLogo,
) )
..key(key) ..key(key)
..title(title ?? '') ..title(title ?? '')
..content(message) ..content(message)
..addIcon(icon) ..addIcon(icon)
..colorConfirmButton(actionButtonColor ?? AppColor.colorTextButton) ..colorConfirmButton(actionButtonColor ?? AppColor.blue700)
..colorCancelButton(cancelButtonColor ?? AppColor.colorCancelButton) ..colorCancelButton(cancelButtonColor ?? AppColor.colorF3F6F9)
..marginIcon(icon != null ? (marginIcon ?? const EdgeInsets.only(top: 24)) : null)
..paddingTitle(paddingTitle)
..radiusButton(12) ..radiusButton(12)
..paddingButton(paddingButton) ..styleTitle(titleStyle)
..paddingContent(const EdgeInsets.only(left: 24, right: 24, bottom: 24, top: 12)) ..styleContent(messageStyle)
..marginButton(hasCancelButton ? null : const EdgeInsets.only(bottom: 24, left: 24, right: 24)) ..styleTextCancelButton(cancelStyle ?? const TextStyle(
..styleTitle(titleStyle ?? const TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.black)) fontSize: 17,
..styleContent(messageStyle ?? const TextStyle(fontSize: 14, fontWeight: FontWeight.normal, color: AppColor.colorContentEmail)) height: 24 / 17,
..styleTextCancelButton(cancelStyle ?? const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: AppColor.colorTextButton)) fontWeight: FontWeight.w500,
..styleTextConfirmButton(actionStyle ?? const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: Colors.white)) color: AppColor.steelGray600,
))
..styleTextConfirmButton(actionStyle ?? const TextStyle(
fontSize: 17,
height: 24 / 17,
fontWeight: FontWeight.w500,
color: Colors.white,
))
..onConfirmButtonAction(actionName, () { ..onConfirmButtonAction(actionName, () {
if (autoPerformPopBack) { if (autoPerformPopBack) {
popBack(); popBack();
@@ -107,25 +108,30 @@ mixin MessageDialogActionMixin {
listTextSpan: listTextSpan, listTextSpan: listTextSpan,
maxWith: responsiveUtils.getSizeScreenShortestSide(context) - 16, maxWith: responsiveUtils.getSizeScreenShortestSide(context) - 16,
titleActionButtonMaxLines: titleActionButtonMaxLines, titleActionButtonMaxLines: titleActionButtonMaxLines,
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
useIconAsBasicLogo: useIconAsBasicLogo,
) )
..key(key) ..key(key)
..title(title ?? '') ..title(title ?? '')
..content(message) ..content(message)
..addIcon(icon) ..addIcon(icon)
..paddingButton(paddingButton)
..margin(const EdgeInsets.only(bottom: 42))
..widthDialog(responsiveUtils.getSizeScreenWidth(context)) ..widthDialog(responsiveUtils.getSizeScreenWidth(context))
..colorConfirmButton(actionButtonColor ?? AppColor.colorTextButton) ..colorConfirmButton(actionButtonColor ?? AppColor.blue700)
..colorCancelButton(cancelButtonColor ?? AppColor.colorCancelButton) ..colorCancelButton(cancelButtonColor ?? AppColor.colorF3F6F9)
..paddingTitle(paddingTitle) ..styleTitle(titleStyle)
..marginIcon(EdgeInsets.zero) ..styleContent(messageStyle)
..paddingContent(const EdgeInsets.only(left: 44, right: 44, bottom: 24, top: 12)) ..styleTextCancelButton(cancelStyle ?? const TextStyle(
..marginButton(hasCancelButton ? null : const EdgeInsets.only(bottom: 16, left: 44, right: 44)) fontSize: 17,
..styleTitle(titleStyle ?? const TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.black)) height: 24 / 17,
..styleContent(messageStyle ?? const TextStyle(fontSize: 14, fontWeight: FontWeight.normal, color: AppColor.colorContentEmail)) fontWeight: FontWeight.w500,
..styleTextCancelButton(cancelStyle ?? const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: AppColor.colorTextButton)) color: AppColor.steelGray600,
..styleTextConfirmButton(actionStyle ?? const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: Colors.white)) ))
..styleTextConfirmButton(actionStyle ?? const TextStyle(
fontSize: 17,
height: 24 / 17,
fontWeight: FontWeight.w500,
color: Colors.white,
))
..onConfirmButtonAction(actionName, () { ..onConfirmButtonAction(actionName, () {
if (autoPerformPopBack) { if (autoPerformPopBack) {
popBack(); popBack();
@@ -185,24 +191,29 @@ mixin MessageDialogActionMixin {
imagePaths, imagePaths,
listTextSpan: listTextSpan, listTextSpan: listTextSpan,
titleActionButtonMaxLines: titleActionButtonMaxLines, titleActionButtonMaxLines: titleActionButtonMaxLines,
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
useIconAsBasicLogo: useIconAsBasicLogo,
) )
..key(key) ..key(key)
..title(title ?? '') ..title(title ?? '')
..content(message) ..content(message)
..addIcon(icon) ..addIcon(icon)
..paddingButton(paddingButton) ..colorConfirmButton(actionButtonColor ?? AppColor.blue700)
..colorConfirmButton(actionButtonColor ?? AppColor.colorTextButton) ..colorCancelButton(cancelButtonColor ?? AppColor.colorF3F6F9)
..colorCancelButton(cancelButtonColor ?? AppColor.colorCancelButton) ..styleTitle(titleStyle)
..marginIcon(icon != null ? const EdgeInsets.only(top: 24) : null) ..styleContent(messageStyle)
..paddingTitle(paddingTitle) ..styleTextCancelButton(cancelStyle ?? const TextStyle(
..marginIcon(EdgeInsets.zero) fontSize: 17,
..paddingContent(const EdgeInsets.only(left: 44, right: 44, bottom: 24, top: 12)) height: 24 / 17,
..marginButton(hasCancelButton ? null : const EdgeInsets.only(bottom: 16, left: 44, right: 44)) fontWeight: FontWeight.w500,
..styleTitle(titleStyle ?? const TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.black)) color: AppColor.steelGray600,
..styleContent(messageStyle ?? const TextStyle(fontSize: 14, fontWeight: FontWeight.normal, color: AppColor.colorContentEmail)) ))
..styleTextCancelButton(cancelStyle ?? const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: AppColor.colorTextButton)) ..styleTextConfirmButton(actionStyle ?? const TextStyle(
..styleTextConfirmButton(actionStyle ?? const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: Colors.white)) fontSize: 17,
height: 24 / 17,
fontWeight: FontWeight.w500,
color: Colors.white,
))
..onConfirmButtonAction(actionName, () { ..onConfirmButtonAction(actionName, () {
if (autoPerformPopBack) { if (autoPerformPopBack) {
popBack(); popBack();
@@ -2258,7 +2258,6 @@ class ComposerController extends BaseController
_autoFocusFieldWhenLauncher(); _autoFocusFieldWhenLauncher();
} }
}, },
marginIcon: EdgeInsets.zero,
icon: SvgPicture.asset( icon: SvgPicture.asset(
imagePaths.icQuotasWarning, imagePaths.icQuotasWarning,
width: 40, width: 40,
@@ -1492,13 +1492,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
.show(); .show();
} else { } else {
Get.dialog( Get.dialog(
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('confirm_dialog_delete_email_permanently')) ..key(const Key('confirm_dialog_delete_email_permanently'))
..title(DeleteActionType.single.getTitleDialog(context)) ..title(DeleteActionType.single.getTitleDialog(context))
..content(DeleteActionType.single.getContentDialog(context)) ..content(DeleteActionType.single.getContentDialog(context))
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(() => popBack()) ..onCloseButtonAction(() => popBack())
..onConfirmButtonAction(DeleteActionType.single.getConfirmActionName(context), () => _deleteEmailPermanentlyAction(context, email)) ..onConfirmButtonAction(DeleteActionType.single.getConfirmActionName(context), () => _deleteEmailPermanentlyAction(context, email))
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack())) ..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()))
@@ -1069,16 +1069,10 @@ class MailboxController extends BaseMailboxController
.show(); .show();
} else { } else {
Get.dialog( Get.dialog(
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('confirm_dialog_delete_multiple_mailbox')) ..key(const Key('confirm_dialog_delete_multiple_mailbox'))
..title(AppLocalizations.of(context).deleteFolders) ..title(AppLocalizations.of(context).deleteFolders)
..content(AppLocalizations.of(context).messageConfirmationDialogDeleteMultipleFolder(selectedMailboxList.length)) ..content(AppLocalizations.of(context).messageConfirmationDialogDeleteMultipleFolder(selectedMailboxList.length))
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(() => popBack()) ..onCloseButtonAction(() => popBack())
..onConfirmButtonAction(AppLocalizations.of(context).delete, () => ..onConfirmButtonAction(AppLocalizations.of(context).delete, () =>
_deleteMultipleMailboxAction(selectedMailboxList)) _deleteMultipleMailboxAction(selectedMailboxList))
@@ -1711,23 +1705,16 @@ class MailboxController extends BaseMailboxController
} else { } else {
Get.dialog( Get.dialog(
PointerInterceptor( PointerInterceptor(
child: (ConfirmDialogBuilder(imagePaths) child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('confirm_dialog_subaddressing')) ..key(const Key('confirm_dialog_subaddressing'))
..title(AppLocalizations.of(context).allowSubaddressing) ..title(AppLocalizations.of(context).allowSubaddressing)
..styleTitle(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorTextButton
))
..content(AppLocalizations.of(context).message_confirmation_dialog_allow_subaddressing(mailboxName)) ..content(AppLocalizations.of(context).message_confirmation_dialog_allow_subaddressing(mailboxName))
..addIcon(SvgPicture.asset(imagePaths.icSubaddressingAllow, width: 64, height: 64))
..addWidgetContent(CopySubaddressWidget( ..addWidgetContent(CopySubaddressWidget(
context: context, context: context,
imagePath: imagePaths, imagePath: imagePaths,
subaddress: subaddress, subaddress: subaddress,
onCopyButtonAction: () => copySubaddressAction(context, subaddress), onCopyButtonAction: () => copySubaddressAction(context, subaddress),
)) ))
..colorCancelButton(AppColor.colorContentEmail)
..onCloseButtonAction(() => popBack()) ..onCloseButtonAction(() => popBack())
..onConfirmButtonAction(AppLocalizations.of(context).allow, () => onAllowSubaddressingAction(mailboxId, currentRights, MailboxActions.allowSubaddressing)) ..onConfirmButtonAction(AppLocalizations.of(context).allow, () => onAllowSubaddressingAction(mailboxId, currentRights, MailboxActions.allowSubaddressing))
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()) ..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack())
@@ -23,28 +23,26 @@ class CopySubaddressWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Padding( return Row(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), mainAxisSize: MainAxisSize.min,
child: Row( mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
crossAxisAlignment: CrossAxisAlignment.center, Flexible(
children: [ child: Text(
Expanded( subaddress,
child: Text( maxLines: 1,
subaddress, overflow: TextOverflow.ellipsis,
style: const TextStyle(fontSize: 17.0, color: AppColor.colorMessageDialog), style: const TextStyle(fontSize: 17.0, color: AppColor.colorMessageDialog),
),
), ),
TMailButtonWidget.fromIcon( ),
icon: imagePath.icCopy, TMailButtonWidget.fromIcon(
iconSize: 30, icon: imagePath.icCopy,
padding: const EdgeInsets.all(3), iconSize: 30,
backgroundColor: Colors.transparent, padding: const EdgeInsets.all(5),
margin: const EdgeInsetsDirectional.only(top: 16, end: 16), backgroundColor: Colors.transparent,
onTapActionCallback: onCopyButtonAction onTapActionCallback: onCopyButtonAction,
) )
], ],
),
); );
} }
} }
@@ -1552,19 +1552,13 @@ class MailboxDashBoardController extends ReloadableController
.show(); .show();
} else { } else {
Get.dialog( Get.dialog(
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('confirm_dialog_delete_emails_permanently')) ..key(const Key('confirm_dialog_delete_emails_permanently'))
..title(actionType.getTitleDialog(context)) ..title(actionType.getTitleDialog(context))
..content(actionType.getContentDialog( ..content(actionType.getContentDialog(
context, context,
count: listEmails?.length, count: listEmails?.length,
mailboxName: mailboxCurrent?.getDisplayName(context))) mailboxName: mailboxCurrent?.getDisplayName(context)))
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(() => popBack()) ..onCloseButtonAction(() => popBack())
..onConfirmButtonAction( ..onConfirmButtonAction(
actionType.getConfirmActionName(context), actionType.getConfirmActionName(context),
@@ -2699,16 +2693,10 @@ class MailboxDashBoardController extends ReloadableController
.show(); .show();
} else { } else {
Get.dialog( Get.dialog(
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('confirm_dialog_empty_spam')) ..key(const Key('confirm_dialog_empty_spam'))
..title(AppLocalizations.of(context).emptySpamFolder) ..title(AppLocalizations.of(context).emptySpamFolder)
..content(AppLocalizations.of(context).emptySpamMessageDialog) ..content(AppLocalizations.of(context).emptySpamMessageDialog)
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(popBack) ..onCloseButtonAction(popBack)
..onConfirmButtonAction(AppLocalizations.of(context).delete_all, () { ..onConfirmButtonAction(AppLocalizations.of(context).delete_all, () {
popBack(); popBack();
@@ -79,7 +79,9 @@ class TopBarThreadSelection extends StatelessWidget{
icon: isAllEmailStarred icon: isAllEmailStarred
? imagePaths.icUnStar ? imagePaths.icUnStar
: imagePaths.icStar, : imagePaths.icStar,
iconColor: TopBarThreadSelectionStyle.iconColor, iconColor: isAllEmailStarred
? TopBarThreadSelectionStyle.iconColor
: null,
tooltipMessage: isAllEmailStarred tooltipMessage: isAllEmailStarred
? AppLocalizations.of(context).un_star ? AppLocalizations.of(context).un_star
: AppLocalizations.of(context).star, : AppLocalizations.of(context).star,
@@ -168,17 +168,9 @@ class EmailRulesController extends BaseController {
} else { } else {
Get.dialog( Get.dialog(
PointerInterceptor( PointerInterceptor(
child: (ConfirmDialogBuilder(imagePaths) child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..title(AppLocalizations.of(context).deleteEmailRule) ..title(AppLocalizations.of(context).deleteEmailRule)
..content(AppLocalizations.of(context).messageConfirmationDialogDeleteEmailRule(emailRule.name)) ..content(AppLocalizations.of(context).messageConfirmationDialogDeleteEmailRule(emailRule.name))
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog,
fit: BoxFit.fill))
..marginIcon(EdgeInsets.zero)
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(() => popBack()) ..onCloseButtonAction(() => popBack())
..onConfirmButtonAction(AppLocalizations.of(context).delete, () { ..onConfirmButtonAction(AppLocalizations.of(context).delete, () {
_handleDeleteEmailRuleAction(emailRule); _handleDeleteEmailRuleAction(emailRule);
@@ -4,7 +4,6 @@ import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/keyboard_utils.dart'; import 'package:core/presentation/utils/keyboard_utils.dart';
import 'package:core/utils/app_logger.dart'; import 'package:core/utils/app_logger.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:forward/forward/tmail_forward.dart'; import 'package:forward/forward/tmail_forward.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/account_id.dart';
@@ -115,27 +114,28 @@ class ForwardController extends BaseController {
} }
void deleteRecipients(BuildContext context, String emailAddress) { void deleteRecipients(BuildContext context, String emailAddress) {
showConfirmDialogAction(context, showConfirmDialogAction(
context,
title: AppLocalizations.of(context).deleteRecipient, title: AppLocalizations.of(context).deleteRecipient,
AppLocalizations.of(context).messageConfirmationDialogDeleteRecipientForward(emailAddress), AppLocalizations.of(context).messageConfirmationDialogDeleteRecipientForward(emailAddress),
AppLocalizations.of(context).remove, AppLocalizations.of(context).remove,
onConfirmAction: () => _handleDeleteRecipientAction({emailAddress}), onConfirmAction: () => _handleDeleteRecipientAction({emailAddress}),
showAsBottomSheet: true, showAsBottomSheet: true,
icon: SvgPicture.asset(imagePaths.icDeleteDialogRecipients, fit: BoxFit.fill), useIconAsBasicLogo: true,
titleStyle: const TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: AppColor.colorDeletePermanentlyButton),
actionStyle: const TextStyle( actionStyle: const TextStyle(
fontSize: 17, fontSize: 17,
height: 24 / 17,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: Colors.white), color: AppColor.steelGray600,
),
cancelStyle: const TextStyle( cancelStyle: const TextStyle(
fontSize: 17, fontSize: 17,
height: 24 / 17,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: AppColor.colorTextButton), color: Colors.white,
actionButtonColor: AppColor.colorDeletePermanentlyButton, ),
cancelButtonColor: AppColor.colorButtonCancelDialog, actionButtonColor: AppColor.colorF3F6F9,
cancelButtonColor: AppColor.blue700,
); );
} }
@@ -217,21 +217,21 @@ class ForwardController extends BaseController {
AppLocalizations.of(currentContext!).remove, AppLocalizations.of(currentContext!).remove,
onConfirmAction: () => _handleDeleteRecipientAction(listEmailAddress), onConfirmAction: () => _handleDeleteRecipientAction(listEmailAddress),
showAsBottomSheet: true, showAsBottomSheet: true,
icon: SvgPicture.asset(imagePaths.icDeleteDialogRecipients, fit: BoxFit.fill), useIconAsBasicLogo: true,
titleStyle: const TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: AppColor.colorDeletePermanentlyButton),
actionStyle: const TextStyle( actionStyle: const TextStyle(
fontSize: 17, fontSize: 17,
height: 24 / 17,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: Colors.white), color: AppColor.steelGray600,
),
cancelStyle: const TextStyle( cancelStyle: const TextStyle(
fontSize: 17, fontSize: 17,
height: 24 / 17,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: AppColor.colorTextButton), color: Colors.white,
actionButtonColor: AppColor.colorDeletePermanentlyButton, ),
cancelButtonColor: AppColor.colorButtonCancelDialog, actionButtonColor: AppColor.colorF3F6F9,
cancelButtonColor: AppColor.blue700,
); );
} }
@@ -7,7 +7,6 @@ import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart'; import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart'; import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
@@ -313,19 +312,9 @@ class IdentitiesController extends ReloadableController implements BeforeReconne
void _deleteIdentityFailure(DeleteIdentityFailure failure) { void _deleteIdentityFailure(DeleteIdentityFailure failure) {
if (currentContext != null) { if (currentContext != null) {
Get.dialog( Get.dialog(
(ConfirmDialogBuilder(imagePaths) (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('dialog_message_delete_identity_failed')) ..key(const Key('dialog_message_delete_identity_failed'))
..title(AppLocalizations.of(currentContext!).delete_failed) ..title(AppLocalizations.of(currentContext!).delete_failed)
..addIcon(SvgPicture.asset(imagePaths.icDeleteDialogFailed, fit: BoxFit.fill))
..marginIcon(EdgeInsets.zero)
..styleTitle(const TextStyle(fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.black))
..colorConfirmButton(AppColor.colorTextButton)
..paddingTitle(const EdgeInsets.symmetric(vertical: 12))
..styleTextConfirmButton(const TextStyle(fontSize: 17,
fontWeight: FontWeight.w500,
color: Colors.white))
..onCloseButtonAction(() => popBack()) ..onCloseButtonAction(() => popBack())
..onConfirmButtonAction('${AppLocalizations.of(currentContext!).got_it}!', () => popBack())) ..onConfirmButtonAction('${AppLocalizations.of(currentContext!).got_it}!', () => popBack()))
.build(), .build(),
@@ -1,6 +1,5 @@
import 'package:core/core.dart'; import 'package:core/core.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart';
@@ -41,37 +40,11 @@ class DeleteIdentityDialogBuilder extends StatelessWidget {
} }
ConfirmDialogBuilder _buildDeleteDialog(BuildContext context) { ConfirmDialogBuilder _buildDeleteDialog(BuildContext context) {
return ConfirmDialogBuilder(imagePaths) return ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('confirm_dialog_delete_identity')) ..key(const Key('confirm_dialog_delete_identity'))
..title(AppLocalizations.of(context).delete_identity) ..title(AppLocalizations.of(context).delete_identity)
..styleTitle(const TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: AppColor.colorActionDeleteConfirmDialog))
..paddingTitle(const EdgeInsets.all(0.0))
..content(AppLocalizations.of(context).message_confirmation_dialog_delete_identity) ..content(AppLocalizations.of(context).message_confirmation_dialog_delete_identity)
..styleContent(const TextStyle( ..onCloseButtonAction(popBack)
fontSize: 15,
fontWeight: FontWeight.normal,
color: AppColor.colorContentEmail))
..paddingContent(const EdgeInsets.symmetric(horizontal: 24.0, vertical: 24.0))
..addIcon(Padding(
padding: const EdgeInsets.symmetric(vertical: 24.0),
child: SvgPicture.asset(imagePaths.icDeleteDialogIdentity, fit: BoxFit.fill),
))
..marginIcon(EdgeInsets.zero)
..colorCancelButton(AppColor.colorButtonCancelDialog)
..styleTextCancelButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorTextButton))
..colorConfirmButton(AppColor.colorActionDeleteConfirmDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: Colors.white))
..marginButton(const EdgeInsets.only(bottom: 24, left: 24, right: 24))
..backgroundColor(Colors.black26)
..onConfirmButtonAction(AppLocalizations.of(context).delete, () => ..onConfirmButtonAction(AppLocalizations.of(context).delete, () =>
onDeleteIdentityAction.call()) onDeleteIdentityAction.call())
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()); ..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack());
@@ -7,7 +7,6 @@ import 'package:core/presentation/views/dialog/confirmation_dialog_builder.dart'
import 'package:core/utils/app_logger.dart'; import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart'; import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart';
@@ -238,17 +237,10 @@ mixin EmailActionController {
.show(); .show();
} else { } else {
Get.dialog( Get.dialog(
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true)
..key(const Key('confirm_dialog_delete_email_permanently')) ..key(const Key('confirm_dialog_delete_email_permanently'))
..title(DeleteActionType.single.getTitleDialog(context)) ..title(DeleteActionType.single.getTitleDialog(context))
..content(DeleteActionType.single.getContentDialog(context)) ..content(DeleteActionType.single.getContentDialog(context))
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(
const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(() => popBack()) ..onCloseButtonAction(() => popBack())
..onConfirmButtonAction( ..onConfirmButtonAction(
DeleteActionType.single.getConfirmActionName(context), DeleteActionType.single.getConfirmActionName(context),
@@ -128,7 +128,6 @@ mixin OpenAppDeepLinkHandlerMixin on MessageDialogActionMixin {
alignCenter: true, alignCenter: true,
outsideDismissible: false, outsideDismissible: false,
titleActionButtonMaxLines: 1, titleActionButtonMaxLines: 1,
titlePadding: const EdgeInsetsDirectional.only(start: 24, top: 24, end: 24, bottom: 12),
messageStyle: const TextStyle( messageStyle: const TextStyle(
color: AppColor.colorTextBody, color: AppColor.colorTextBody,
fontSize: 15, fontSize: 15,