diff --git a/core/lib/presentation/extensions/color_extension.dart b/core/lib/presentation/extensions/color_extension.dart index dcff290df..af6b54cfc 100644 --- a/core/lib/presentation/extensions/color_extension.dart +++ b/core/lib/presentation/extensions/color_extension.dart @@ -242,12 +242,14 @@ extension AppColor on Color { static const steelGray200 = Color(0xFFAEB7C2); static const blue700 = Color(0xFF208BFF); static const steelGray400 = Color(0xFF818C99); + static const steelGray600 = Color(0xFF4E5966); static const blue700 = Color(0xFF208BFF); static const blue100 = Color(0xFFDFEEFF); static const blue400 = Color(0xFF80BDFF); static const m3Tertiary = Color(0xFF8C9CAF); static const m3Neutral70 = Color(0xFFAEAAAE); static const colorF3F6F9 = Color(0xFFF3F6F9); + static const m3SurfaceBackground = Color(0xFF1C1B1F); static const mapGradientColor = [ [Color(0xFF21D4FD), Color(0xFFB721FF)], diff --git a/core/lib/presentation/views/dialog/confirm_dialog_button.dart b/core/lib/presentation/views/dialog/confirm_dialog_button.dart index 03e8a35f2..bc53f3c6e 100644 --- a/core/lib/presentation/views/dialog/confirm_dialog_button.dart +++ b/core/lib/presentation/views/dialog/confirm_dialog_button.dart @@ -1,25 +1,24 @@ -import 'package:core/presentation/extensions/color_extension.dart'; import 'package:flutter/material.dart'; class ConfirmDialogButton extends StatelessWidget { final String label; final double? borderRadius; - final Color? backgroundColor; + final Color backgroundColor; final EdgeInsetsGeometry? padding; final int? maxLines; - final TextStyle? textStyle; + final TextStyle textStyle; final VoidCallback? onTapAction; const ConfirmDialogButton({ super.key, required this.label, + required this.textStyle, + required this.backgroundColor, this.borderRadius, - this.backgroundColor, this.padding, this.maxLines, - this.textStyle, this.onTapAction }); @@ -34,7 +33,7 @@ class ConfirmDialogButton extends StatelessWidget { width: double.infinity, height: maxLines == 1 ? 44 : null, decoration: BoxDecoration( - color: backgroundColor ?? AppColor.primaryColor, + color: backgroundColor, borderRadius: BorderRadius.all(Radius.circular(borderRadius ?? 10)), ), alignment: Alignment.center, @@ -46,12 +45,7 @@ class ConfirmDialogButton extends StatelessWidget { textAlign: TextAlign.center, maxLines: maxLines, overflow: TextOverflow.ellipsis, - style: textStyle ?? Theme.of(context).textTheme.bodyMedium?.copyWith( - fontSize: 16, - height: 20 / 16, - fontWeight: FontWeight.w500, - color: Colors.white - ) + style: textStyle ), ), ), diff --git a/core/lib/presentation/views/dialog/confirmation_dialog_builder.dart b/core/lib/presentation/views/dialog/confirmation_dialog_builder.dart index 973025714..c31d9cd59 100644 --- a/core/lib/presentation/views/dialog/confirmation_dialog_builder.dart +++ b/core/lib/presentation/views/dialog/confirmation_dialog_builder.dart @@ -2,6 +2,7 @@ import 'package:core/core.dart'; import 'package:core/presentation/views/dialog/confirm_dialog_button.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; typedef OnConfirmButtonAction = void Function(); typedef OnCancelButtonAction = void Function(); @@ -39,6 +40,7 @@ class ConfirmDialogBuilder { final List? listTextSpan; final int? titleActionButtonMaxLines; final bool isArrangeActionButtonsVertical; + final bool useIconAsBasicLogo; OnConfirmButtonAction? _onConfirmButtonAction; OnCancelButtonAction? _onCancelButtonAction; @@ -52,6 +54,7 @@ class ConfirmDialogBuilder { this.maxWith = double.infinity, this.titleActionButtonMaxLines, this.isArrangeActionButtonsVertical = false, + this.useIconAsBasicLogo = false, } ); @@ -165,9 +168,7 @@ class ConfirmDialogBuilder { key: _key, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(18))), - insetPadding: _outsideDialogPadding ?? const EdgeInsets.symmetric( - horizontal: 24.0, - vertical: 16.0), + insetPadding: _outsideDialogPadding, alignment: _alignment ?? Alignment.center, backgroundColor: _backgroundColor, child: _bodyContent(), @@ -181,24 +182,40 @@ class ConfirmDialogBuilder { constraints: BoxConstraints(maxWidth: maxWith), decoration: const BoxDecoration( color: Colors.white, - borderRadius: BorderRadius.all(Radius.circular(18))), + borderRadius: BorderRadius.all(Radius.circular(18)), + ), margin: _margin, + padding: const EdgeInsetsDirectional.only( + top: 8, + end: 8, + start: 16, + bottom: 24, + ), child: Column( mainAxisSize: MainAxisSize.min, children: [ if (_onCloseButtonAction != null) Align( - alignment: AlignmentDirectional.centerEnd, + alignment: AlignmentDirectional.topEnd, child: TMailButtonWidget.fromIcon( - icon: _imagePath.icCircleClose, - iconSize: 30, - padding: const EdgeInsets.all(3), + icon: _imagePath.icCancel, + iconSize: 24, + iconColor: AppColor.steelGrayA540, + padding: const EdgeInsets.all(5), backgroundColor: Colors.transparent, - margin: const EdgeInsetsDirectional.only(top: 16, end: 16), - onTapActionCallback: _onCloseButtonAction - ) - ), - if (_iconWidget != null) + onTapActionCallback: _onCloseButtonAction, + ), + ) + else + const SizedBox(height: 24), + if (useIconAsBasicLogo) + SvgPicture.asset( + _imagePath.icTMailLogo, + fit: BoxFit.fill, + width: 70, + height: 70, + ) + else if (_iconWidget != null) Container( margin: _marginIcon ?? EdgeInsets.zero, alignment: Alignment.center, @@ -206,99 +223,139 @@ class ConfirmDialogBuilder { ), if (_title.isNotEmpty) Padding( - padding: _paddingTitle ?? const EdgeInsetsDirectional.only(top: 12, start: 24, end: 24), + padding: _paddingTitle + ?? const EdgeInsetsDirectional.only(top: 16, end: 8,), child: Center( child: Text( _title, 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) Padding( - padding: _paddingContent ?? const EdgeInsets.symmetric(horizontal: 16, vertical: 24), + padding: _paddingContent + ?? const EdgeInsetsDirectional.only(top: 16, end: 8,), child: Center( - child: Text(_textContent, - textAlign: TextAlign.center, - style: _styleContent ?? const TextStyle(fontSize: 17.0, color: AppColor.colorMessageDialog) + child: Text( + _textContent, + textAlign: TextAlign.center, + style: _styleContent ?? const TextStyle( + fontSize: 17.0, + color: AppColor.steelGrayA540, + fontWeight: FontWeight.w500, + ), ), ), ) else if (listTextSpan != null) Padding( - padding: _paddingContent ?? const EdgeInsets.symmetric(horizontal: 16, vertical: 24), + padding: _paddingContent ?? + const EdgeInsetsDirectional.only(top: 16, end: 8,), child: Center( child: RichText( textAlign: TextAlign.center, text: TextSpan( - style: _styleContent ?? const TextStyle(fontSize: 17.0, color: AppColor.colorMessageDialog), - children: listTextSpan + style: _styleContent ?? const TextStyle( + fontSize: 17.0, + color: AppColor.steelGrayA540, + fontWeight: FontWeight.w500, + ), + children: listTextSpan, ), ), ), ), if (_additionalWidgetContent != null) Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), + padding:const EdgeInsetsDirectional.only(top: 16, end: 8,), child: _additionalWidgetContent, ), if (isArrangeActionButtonsVertical) ...[ if (_cancelText.isNotEmpty) Padding( - padding: const EdgeInsetsDirectional.only(top: 8, start: 16, end: 16), + padding: const EdgeInsetsDirectional.only(top: 16, end: 8,), child: ConfirmDialogButton( - label: _cancelText, - backgroundColor: _colorCancelButton, - borderRadius: _radiusButton, - textStyle: _styleTextCancelButton, - padding: _paddingButton, - maxLines: titleActionButtonMaxLines, - onTapAction: _onCancelButtonAction), + label: _cancelText, + backgroundColor: _colorCancelButton ?? AppColor.blue700, + borderRadius: _radiusButton, + textStyle: _styleTextCancelButton ?? const TextStyle( + fontSize: 17, + height: 24 / 17, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + padding: _paddingButton, + maxLines: titleActionButtonMaxLines, + onTapAction: _onCancelButtonAction), ), if (_confirmText.isNotEmpty) Padding( - padding: const EdgeInsetsDirectional.only(top: 8, start: 16, end: 16), + padding: const EdgeInsetsDirectional.only(top: 16, end: 8), child: ConfirmDialogButton( - label: _confirmText, - backgroundColor: _colorConfirmButton, - borderRadius: _radiusButton, - textStyle: _styleTextConfirmButton, - padding: _paddingButton, - maxLines: titleActionButtonMaxLines, - onTapAction: _onConfirmButtonAction), + 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), ), - const SizedBox(height: 16), ] else Padding( - padding: _marginButton ?? const EdgeInsetsDirectional.only(bottom: 16, start: 16, end: 16), + padding: _marginButton + ?? const EdgeInsetsDirectional.only(top: 16, end: 8), child: Row( - children: [ - if (_cancelText.isNotEmpty) - Expanded(child: ConfirmDialogButton( - label: _cancelText, - backgroundColor: _colorCancelButton, - borderRadius: _radiusButton, - textStyle: _styleTextCancelButton, - padding: _paddingButton, - maxLines: titleActionButtonMaxLines, - onTapAction: _onCancelButtonAction)), - if (_confirmText.isNotEmpty && _cancelText.isNotEmpty) const SizedBox(width: 8), - if (_confirmText.isNotEmpty) - Expanded(child: ConfirmDialogButton( - label: _confirmText, - backgroundColor: _colorConfirmButton, - borderRadius: _radiusButton, - textStyle: _styleTextConfirmButton, - padding: _paddingButton, - maxLines: titleActionButtonMaxLines, - onTapAction: _onConfirmButtonAction,)) - ] - )) - ] - ) + children: [ + if (_cancelText.isNotEmpty) + Expanded(child: ConfirmDialogButton( + label: _cancelText, + backgroundColor: _colorCancelButton ?? AppColor.blue700, + borderRadius: _radiusButton, + textStyle: _styleTextCancelButton ?? const TextStyle( + fontSize: 17, + height: 24 / 17, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + padding: _paddingButton, + maxLines: titleActionButtonMaxLines, + onTapAction: _onCancelButtonAction, + )), + if (_confirmText.isNotEmpty && _cancelText.isNotEmpty) + const SizedBox(width: 16), + if (_confirmText.isNotEmpty) + 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, + )) + ], + ), + ) + ], + ), ); } } diff --git a/lib/features/base/base_controller.dart b/lib/features/base/base_controller.dart index 9cf847d3b..68a413f34 100644 --- a/lib/features/base/base_controller.dart +++ b/lib/features/base/base_controller.dart @@ -241,7 +241,6 @@ abstract class BaseController extends GetxController alignCenter: true, outsideDismissible: false, titleActionButtonMaxLines: 1, - marginIcon: EdgeInsetsDirectional.zero, icon: SvgPicture.asset(imagePaths.icTMailLogo, width: 64, height: 64), onConfirmAction: _performSaveAndReconnection, onCancelAction: _performReconnection, diff --git a/lib/features/base/base_mailbox_controller.dart b/lib/features/base/base_mailbox_controller.dart index f6374cc55..17684b175 100644 --- a/lib/features/base/base_mailbox_controller.dart +++ b/lib/features/base/base_mailbox_controller.dart @@ -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/platform_info.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; @@ -437,17 +436,10 @@ abstract class BaseMailboxController extends BaseController { } else { Get.dialog( PointerInterceptor( - child: (ConfirmDialogBuilder(imagePaths) + child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('confirm_dialog_delete_mailbox')) ..title(AppLocalizations.of(context).deleteFolders) ..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()) ..onConfirmButtonAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox)) ..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()) diff --git a/lib/features/base/mixin/logout_mixin.dart b/lib/features/base/mixin/logout_mixin.dart index 30ba4aaef..402b8f4d7 100644 --- a/lib/features/base/mixin/logout_mixin.dart +++ b/lib/features/base/mixin/logout_mixin.dart @@ -19,12 +19,6 @@ mixin LogoutMixin implements MessageDialogActionMixin { alignCenter: true, outsideDismissible: false, titleActionButtonMaxLines: 1, - titlePadding: const EdgeInsetsDirectional.only( - start: 24, - top: 24, - end: 24, - bottom: 12, - ), messageStyle: const TextStyle( color: AppColor.colorTextBody, fontSize: 15, diff --git a/lib/features/base/mixin/mailbox_action_handler_mixin.dart b/lib/features/base/mixin/mailbox_action_handler_mixin.dart index ca34bba97..c77d9932d 100644 --- a/lib/features/base/mixin/mailbox_action_handler_mixin.dart +++ b/lib/features/base/mixin/mailbox_action_handler_mixin.dart @@ -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/dialog/confirmation_dialog_builder.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:model/extensions/presentation_mailbox_extension.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; @@ -78,16 +77,10 @@ mixin MailboxActionHandlerMixin { .show(); } else { Get.dialog( - PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) + PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('confirm_dialog_empty_trash')) ..title(AppLocalizations.of(context).emptyTrash) ..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) ..onConfirmButtonAction(AppLocalizations.of(context).delete, () { popBack(); @@ -142,16 +135,10 @@ mixin MailboxActionHandlerMixin { .show(); } else { Get.dialog( - PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) + PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('confirm_dialog_empty_spam')) ..title(AppLocalizations.of(context).emptySpamFolder) ..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) ..onConfirmButtonAction(AppLocalizations.of(context).delete_all, () { popBack(); diff --git a/lib/features/base/mixin/message_dialog_action_mixin.dart b/lib/features/base/mixin/message_dialog_action_mixin.dart index b4aa5ec1c..6c9f40b9e 100644 --- a/lib/features/base/mixin/message_dialog_action_mixin.dart +++ b/lib/features/base/mixin/message_dialog_action_mixin.dart @@ -38,41 +38,42 @@ mixin MessageDialogActionMixin { PopInvokedWithResultCallback? onPopInvoked, bool isArrangeActionButtonsVertical = false, int? titleActionButtonMaxLines, - EdgeInsetsGeometry? titlePadding, + bool useIconAsBasicLogo = false, } ) async { final responsiveUtils = Get.find(); final imagePaths = Get.find(); - final paddingTitle = titlePadding ?? - (icon != null - ? const EdgeInsetsDirectional.only(top: 24, start: 24, end: 24) - : const EdgeInsetsDirectional.symmetric(horizontal: 24)); - if (alignCenter) { final childWidget = PointerInterceptor( child: (ConfirmDialogBuilder( imagePaths, listTextSpan: listTextSpan, titleActionButtonMaxLines: titleActionButtonMaxLines, - isArrangeActionButtonsVertical: isArrangeActionButtonsVertical + isArrangeActionButtonsVertical: isArrangeActionButtonsVertical, + useIconAsBasicLogo: useIconAsBasicLogo, ) ..key(key) ..title(title ?? '') ..content(message) ..addIcon(icon) - ..colorConfirmButton(actionButtonColor ?? AppColor.colorTextButton) - ..colorCancelButton(cancelButtonColor ?? AppColor.colorCancelButton) - ..marginIcon(icon != null ? (marginIcon ?? const EdgeInsets.only(top: 24)) : null) - ..paddingTitle(paddingTitle) + ..colorConfirmButton(actionButtonColor ?? AppColor.blue700) + ..colorCancelButton(cancelButtonColor ?? AppColor.colorF3F6F9) ..radiusButton(12) - ..paddingButton(paddingButton) - ..paddingContent(const EdgeInsets.only(left: 24, right: 24, bottom: 24, top: 12)) - ..marginButton(hasCancelButton ? null : const EdgeInsets.only(bottom: 24, left: 24, right: 24)) - ..styleTitle(titleStyle ?? const TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.black)) - ..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(fontSize: 17, fontWeight: FontWeight.w500, color: Colors.white)) + ..styleTitle(titleStyle) + ..styleContent(messageStyle) + ..styleTextCancelButton(cancelStyle ?? const TextStyle( + fontSize: 17, + height: 24 / 17, + fontWeight: FontWeight.w500, + color: AppColor.steelGray600, + )) + ..styleTextConfirmButton(actionStyle ?? const TextStyle( + fontSize: 17, + height: 24 / 17, + fontWeight: FontWeight.w500, + color: Colors.white, + )) ..onConfirmButtonAction(actionName, () { if (autoPerformPopBack) { popBack(); @@ -107,25 +108,30 @@ mixin MessageDialogActionMixin { listTextSpan: listTextSpan, maxWith: responsiveUtils.getSizeScreenShortestSide(context) - 16, titleActionButtonMaxLines: titleActionButtonMaxLines, - isArrangeActionButtonsVertical: isArrangeActionButtonsVertical + isArrangeActionButtonsVertical: isArrangeActionButtonsVertical, + useIconAsBasicLogo: useIconAsBasicLogo, ) ..key(key) ..title(title ?? '') ..content(message) ..addIcon(icon) - ..paddingButton(paddingButton) - ..margin(const EdgeInsets.only(bottom: 42)) ..widthDialog(responsiveUtils.getSizeScreenWidth(context)) - ..colorConfirmButton(actionButtonColor ?? AppColor.colorTextButton) - ..colorCancelButton(cancelButtonColor ?? AppColor.colorCancelButton) - ..paddingTitle(paddingTitle) - ..marginIcon(EdgeInsets.zero) - ..paddingContent(const EdgeInsets.only(left: 44, right: 44, bottom: 24, top: 12)) - ..marginButton(hasCancelButton ? null : const EdgeInsets.only(bottom: 16, left: 44, right: 44)) - ..styleTitle(titleStyle ?? const TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.black)) - ..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(fontSize: 17, fontWeight: FontWeight.w500, color: Colors.white)) + ..colorConfirmButton(actionButtonColor ?? AppColor.blue700) + ..colorCancelButton(cancelButtonColor ?? AppColor.colorF3F6F9) + ..styleTitle(titleStyle) + ..styleContent(messageStyle) + ..styleTextCancelButton(cancelStyle ?? const TextStyle( + fontSize: 17, + height: 24 / 17, + fontWeight: FontWeight.w500, + color: AppColor.steelGray600, + )) + ..styleTextConfirmButton(actionStyle ?? const TextStyle( + fontSize: 17, + height: 24 / 17, + fontWeight: FontWeight.w500, + color: Colors.white, + )) ..onConfirmButtonAction(actionName, () { if (autoPerformPopBack) { popBack(); @@ -185,24 +191,29 @@ mixin MessageDialogActionMixin { imagePaths, listTextSpan: listTextSpan, titleActionButtonMaxLines: titleActionButtonMaxLines, - isArrangeActionButtonsVertical: isArrangeActionButtonsVertical + isArrangeActionButtonsVertical: isArrangeActionButtonsVertical, + useIconAsBasicLogo: useIconAsBasicLogo, ) ..key(key) ..title(title ?? '') ..content(message) ..addIcon(icon) - ..paddingButton(paddingButton) - ..colorConfirmButton(actionButtonColor ?? AppColor.colorTextButton) - ..colorCancelButton(cancelButtonColor ?? AppColor.colorCancelButton) - ..marginIcon(icon != null ? const EdgeInsets.only(top: 24) : null) - ..paddingTitle(paddingTitle) - ..marginIcon(EdgeInsets.zero) - ..paddingContent(const EdgeInsets.only(left: 44, right: 44, bottom: 24, top: 12)) - ..marginButton(hasCancelButton ? null : const EdgeInsets.only(bottom: 16, left: 44, right: 44)) - ..styleTitle(titleStyle ?? const TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.black)) - ..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(fontSize: 17, fontWeight: FontWeight.w500, color: Colors.white)) + ..colorConfirmButton(actionButtonColor ?? AppColor.blue700) + ..colorCancelButton(cancelButtonColor ?? AppColor.colorF3F6F9) + ..styleTitle(titleStyle) + ..styleContent(messageStyle) + ..styleTextCancelButton(cancelStyle ?? const TextStyle( + fontSize: 17, + height: 24 / 17, + fontWeight: FontWeight.w500, + color: AppColor.steelGray600, + )) + ..styleTextConfirmButton(actionStyle ?? const TextStyle( + fontSize: 17, + height: 24 / 17, + fontWeight: FontWeight.w500, + color: Colors.white, + )) ..onConfirmButtonAction(actionName, () { if (autoPerformPopBack) { popBack(); diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index cfcd62eb8..0a7057356 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -2258,7 +2258,6 @@ class ComposerController extends BaseController _autoFocusFieldWhenLauncher(); } }, - marginIcon: EdgeInsets.zero, icon: SvgPicture.asset( imagePaths.icQuotasWarning, width: 40, diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index 6aa704c31..be7259700 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -1492,13 +1492,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin { .show(); } else { Get.dialog( - PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) + PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('confirm_dialog_delete_email_permanently')) ..title(DeleteActionType.single.getTitleDialog(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()) ..onConfirmButtonAction(DeleteActionType.single.getConfirmActionName(context), () => _deleteEmailPermanentlyAction(context, email)) ..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack())) diff --git a/lib/features/mailbox/presentation/mailbox_controller.dart b/lib/features/mailbox/presentation/mailbox_controller.dart index d9db0061a..b34124b17 100644 --- a/lib/features/mailbox/presentation/mailbox_controller.dart +++ b/lib/features/mailbox/presentation/mailbox_controller.dart @@ -1069,16 +1069,10 @@ class MailboxController extends BaseMailboxController .show(); } else { Get.dialog( - PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) + PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('confirm_dialog_delete_multiple_mailbox')) ..title(AppLocalizations.of(context).deleteFolders) ..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()) ..onConfirmButtonAction(AppLocalizations.of(context).delete, () => _deleteMultipleMailboxAction(selectedMailboxList)) @@ -1711,23 +1705,16 @@ class MailboxController extends BaseMailboxController } else { Get.dialog( PointerInterceptor( - child: (ConfirmDialogBuilder(imagePaths) + child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('confirm_dialog_subaddressing')) ..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)) - ..addIcon(SvgPicture.asset(imagePaths.icSubaddressingAllow, width: 64, height: 64)) ..addWidgetContent(CopySubaddressWidget( context: context, imagePath: imagePaths, subaddress: subaddress, onCopyButtonAction: () => copySubaddressAction(context, subaddress), )) - ..colorCancelButton(AppColor.colorContentEmail) ..onCloseButtonAction(() => popBack()) ..onConfirmButtonAction(AppLocalizations.of(context).allow, () => onAllowSubaddressingAction(mailboxId, currentRights, MailboxActions.allowSubaddressing)) ..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()) diff --git a/lib/features/mailbox/presentation/widgets/copy_subaddress_widget.dart b/lib/features/mailbox/presentation/widgets/copy_subaddress_widget.dart index 9f4642c95..e3b00e031 100644 --- a/lib/features/mailbox/presentation/widgets/copy_subaddress_widget.dart +++ b/lib/features/mailbox/presentation/widgets/copy_subaddress_widget.dart @@ -23,28 +23,26 @@ class CopySubaddressWidget extends StatelessWidget { @override Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Expanded( - child: Text( - subaddress, - style: const TextStyle(fontSize: 17.0, color: AppColor.colorMessageDialog), - ), + return Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Flexible( + child: Text( + subaddress, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle(fontSize: 17.0, color: AppColor.colorMessageDialog), ), - TMailButtonWidget.fromIcon( - icon: imagePath.icCopy, - iconSize: 30, - padding: const EdgeInsets.all(3), - backgroundColor: Colors.transparent, - margin: const EdgeInsetsDirectional.only(top: 16, end: 16), - onTapActionCallback: onCopyButtonAction - ) - ], - ), + ), + TMailButtonWidget.fromIcon( + icon: imagePath.icCopy, + iconSize: 30, + padding: const EdgeInsets.all(5), + backgroundColor: Colors.transparent, + onTapActionCallback: onCopyButtonAction, + ) + ], ); } } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index 13bc247bb..828aaca22 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -1552,19 +1552,13 @@ class MailboxDashBoardController extends ReloadableController .show(); } else { Get.dialog( - PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) + PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('confirm_dialog_delete_emails_permanently')) ..title(actionType.getTitleDialog(context)) ..content(actionType.getContentDialog( context, count: listEmails?.length, 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()) ..onConfirmButtonAction( actionType.getConfirmActionName(context), @@ -2699,16 +2693,10 @@ class MailboxDashBoardController extends ReloadableController .show(); } else { Get.dialog( - PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) + PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('confirm_dialog_empty_spam')) ..title(AppLocalizations.of(context).emptySpamFolder) ..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) ..onConfirmButtonAction(AppLocalizations.of(context).delete_all, () { popBack(); diff --git a/lib/features/mailbox_dashboard/presentation/widgets/top_bar_thread_selection.dart b/lib/features/mailbox_dashboard/presentation/widgets/top_bar_thread_selection.dart index c18cae76c..9de085e78 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/top_bar_thread_selection.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/top_bar_thread_selection.dart @@ -79,7 +79,9 @@ class TopBarThreadSelection extends StatelessWidget{ icon: isAllEmailStarred ? imagePaths.icUnStar : imagePaths.icStar, - iconColor: TopBarThreadSelectionStyle.iconColor, + iconColor: isAllEmailStarred + ? TopBarThreadSelectionStyle.iconColor + : null, tooltipMessage: isAllEmailStarred ? AppLocalizations.of(context).un_star : AppLocalizations.of(context).star, diff --git a/lib/features/manage_account/presentation/email_rules/email_rules_controller.dart b/lib/features/manage_account/presentation/email_rules/email_rules_controller.dart index b89bfad0a..a2df0f507 100644 --- a/lib/features/manage_account/presentation/email_rules/email_rules_controller.dart +++ b/lib/features/manage_account/presentation/email_rules/email_rules_controller.dart @@ -168,17 +168,9 @@ class EmailRulesController extends BaseController { } else { Get.dialog( PointerInterceptor( - child: (ConfirmDialogBuilder(imagePaths) + child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..title(AppLocalizations.of(context).deleteEmailRule) ..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()) ..onConfirmButtonAction(AppLocalizations.of(context).delete, () { _handleDeleteEmailRuleAction(emailRule); diff --git a/lib/features/manage_account/presentation/forward/forward_controller.dart b/lib/features/manage_account/presentation/forward/forward_controller.dart index 2e9c1cdfc..7bfb1941b 100644 --- a/lib/features/manage_account/presentation/forward/forward_controller.dart +++ b/lib/features/manage_account/presentation/forward/forward_controller.dart @@ -4,7 +4,6 @@ import 'package:core/presentation/state/success.dart'; import 'package:core/presentation/utils/keyboard_utils.dart'; import 'package:core/utils/app_logger.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:forward/forward/tmail_forward.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; @@ -115,27 +114,28 @@ class ForwardController extends BaseController { } void deleteRecipients(BuildContext context, String emailAddress) { - showConfirmDialogAction(context, + showConfirmDialogAction( + context, title: AppLocalizations.of(context).deleteRecipient, AppLocalizations.of(context).messageConfirmationDialogDeleteRecipientForward(emailAddress), AppLocalizations.of(context).remove, onConfirmAction: () => _handleDeleteRecipientAction({emailAddress}), showAsBottomSheet: true, - icon: SvgPicture.asset(imagePaths.icDeleteDialogRecipients, fit: BoxFit.fill), - titleStyle: const TextStyle( - fontSize: 20, - fontWeight: FontWeight.w600, - color: AppColor.colorDeletePermanentlyButton), + useIconAsBasicLogo: true, actionStyle: const TextStyle( fontSize: 17, + height: 24 / 17, fontWeight: FontWeight.w500, - color: Colors.white), + color: AppColor.steelGray600, + ), cancelStyle: const TextStyle( fontSize: 17, + height: 24 / 17, fontWeight: FontWeight.w500, - color: AppColor.colorTextButton), - actionButtonColor: AppColor.colorDeletePermanentlyButton, - cancelButtonColor: AppColor.colorButtonCancelDialog, + color: Colors.white, + ), + actionButtonColor: AppColor.colorF3F6F9, + cancelButtonColor: AppColor.blue700, ); } @@ -217,21 +217,21 @@ class ForwardController extends BaseController { AppLocalizations.of(currentContext!).remove, onConfirmAction: () => _handleDeleteRecipientAction(listEmailAddress), showAsBottomSheet: true, - icon: SvgPicture.asset(imagePaths.icDeleteDialogRecipients, fit: BoxFit.fill), - titleStyle: const TextStyle( - fontSize: 20, - fontWeight: FontWeight.w600, - color: AppColor.colorDeletePermanentlyButton), + useIconAsBasicLogo: true, actionStyle: const TextStyle( fontSize: 17, + height: 24 / 17, fontWeight: FontWeight.w500, - color: Colors.white), + color: AppColor.steelGray600, + ), cancelStyle: const TextStyle( fontSize: 17, + height: 24 / 17, fontWeight: FontWeight.w500, - color: AppColor.colorTextButton), - actionButtonColor: AppColor.colorDeletePermanentlyButton, - cancelButtonColor: AppColor.colorButtonCancelDialog, + color: Colors.white, + ), + actionButtonColor: AppColor.colorF3F6F9, + cancelButtonColor: AppColor.blue700, ); } diff --git a/lib/features/manage_account/presentation/profiles/identities/identities_controller.dart b/lib/features/manage_account/presentation/profiles/identities/identities_controller.dart index 9d8f66de4..a84003f1b 100644 --- a/lib/features/manage_account/presentation/profiles/identities/identities_controller.dart +++ b/lib/features/manage_account/presentation/profiles/identities/identities_controller.dart @@ -7,7 +7,6 @@ import 'package:core/utils/app_logger.dart'; import 'package:core/utils/platform_info.dart'; import 'package:dartz/dartz.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/account_id.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) { if (currentContext != null) { Get.dialog( - (ConfirmDialogBuilder(imagePaths) + (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('dialog_message_delete_identity_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()) ..onConfirmButtonAction('${AppLocalizations.of(currentContext!).got_it}!', () => popBack())) .build(), diff --git a/lib/features/manage_account/presentation/profiles/identities/widgets/delete_identity_dialog_builder.dart b/lib/features/manage_account/presentation/profiles/identities/widgets/delete_identity_dialog_builder.dart index 72de12425..a6d43b75c 100644 --- a/lib/features/manage_account/presentation/profiles/identities/widgets/delete_identity_dialog_builder.dart +++ b/lib/features/manage_account/presentation/profiles/identities/widgets/delete_identity_dialog_builder.dart @@ -1,6 +1,5 @@ import 'package:core/core.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; @@ -41,37 +40,11 @@ class DeleteIdentityDialogBuilder extends StatelessWidget { } ConfirmDialogBuilder _buildDeleteDialog(BuildContext context) { - return ConfirmDialogBuilder(imagePaths) + return ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('confirm_dialog_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) - ..styleContent(const TextStyle( - 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) + ..onCloseButtonAction(popBack) ..onConfirmButtonAction(AppLocalizations.of(context).delete, () => onDeleteIdentityAction.call()) ..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack()); diff --git a/lib/features/thread/presentation/mixin/email_action_controller.dart b/lib/features/thread/presentation/mixin/email_action_controller.dart index 7b3499f36..89c9616ca 100644 --- a/lib/features/thread/presentation/mixin/email_action_controller.dart +++ b/lib/features/thread/presentation/mixin/email_action_controller.dart @@ -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/platform_info.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; @@ -238,17 +237,10 @@ mixin EmailActionController { .show(); } else { Get.dialog( - PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths) + PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths, useIconAsBasicLogo: true) ..key(const Key('confirm_dialog_delete_email_permanently')) ..title(DeleteActionType.single.getTitleDialog(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()) ..onConfirmButtonAction( DeleteActionType.single.getConfirmActionName(context), diff --git a/lib/main/deep_links/open_app_deep_link_handler_mixin.dart b/lib/main/deep_links/open_app_deep_link_handler_mixin.dart index f96d1b51d..dbb5b17b4 100644 --- a/lib/main/deep_links/open_app_deep_link_handler_mixin.dart +++ b/lib/main/deep_links/open_app_deep_link_handler_mixin.dart @@ -128,7 +128,6 @@ mixin OpenAppDeepLinkHandlerMixin on MessageDialogActionMixin { alignCenter: true, outsideDismissible: false, titleActionButtonMaxLines: 1, - titlePadding: const EdgeInsetsDirectional.only(start: 24, top: 24, end: 24, bottom: 12), messageStyle: const TextStyle( color: AppColor.colorTextBody, fontSize: 15,