TF-3765 Change dialog style

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-06-12 03:53:36 +07:00
committed by Dat H. Pham
parent 6d08b8d16a
commit a76c09c4d7
12 changed files with 175 additions and 368 deletions
+1 -5
View File
@@ -1,4 +1,3 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/utils/theme_utils.dart';
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/features/base/mixin/message_dialog_action_mixin.dart';
@@ -19,14 +18,11 @@ mixin LogoutMixin implements MessageDialogActionMixin {
title: appLocalizations.logoutConfirmation,
alignCenter: true,
outsideDismissible: false,
titleActionButtonMaxLines: 1,
messageStyle: ThemeUtils.textStyleBodyBody2(color: AppColor.steelGray400),
listTextSpan: [
TextSpan(text: AppLocalizations.of(context).messageConfirmationLogout),
TextSpan(
text: ' $userAddress',
style: ThemeUtils.textStyleBodyBody2(
color: AppColor.steelGray400,
style: ThemeUtils.textStyleM3BodyMedium1.copyWith(
fontWeight: FontWeight.w700,
),
),
@@ -33,20 +33,13 @@ mixin MessageDialogActionMixin {
bool usePopScope = false,
List<TextSpan>? listTextSpan,
Widget? icon,
TextStyle? titleStyle,
TextStyle? messageStyle,
TextStyle? actionStyle,
TextStyle? cancelStyle,
Color? actionButtonColor,
Color? cancelButtonColor,
Color? cancelLabelButtonColor,
Color? confirmLabelButtonColor,
EdgeInsetsGeometry? marginIcon,
EdgeInsetsGeometry? paddingButton,
PopInvokedWithResultCallback? onPopInvoked,
bool isArrangeActionButtonsVertical = false,
int? titleActionButtonMaxLines,
bool useIconAsBasicLogo = true,
bool useIconAsBasicLogo = false,
EdgeInsetsGeometry? dialogMargin,
}
) async {
@@ -59,7 +52,6 @@ mixin MessageDialogActionMixin {
key: key,
imagePath: imagePaths,
listTextSpan: listTextSpan,
titleActionButtonMaxLines: titleActionButtonMaxLines,
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
useIconAsBasicLogo: useIconAsBasicLogo,
title: title ?? '',
@@ -71,12 +63,6 @@ mixin MessageDialogActionMixin {
confirmBackgroundButtonColor: actionButtonColor,
cancelLabelButtonColor: cancelLabelButtonColor,
confirmLabelButtonColor: confirmLabelButtonColor,
styleTextCancelButton: cancelStyle,
styleTextConfirmButton: actionStyle,
styleTitle: titleStyle,
styleContent: messageStyle,
paddingButton: paddingButton,
marginIcon: marginIcon,
onConfirmButtonAction: () {
if (autoPerformPopBack) {
popBack();
@@ -108,21 +94,15 @@ mixin MessageDialogActionMixin {
showAsBottomSheet: true,
listTextSpan: listTextSpan,
maxWidth: responsiveUtils.getSizeScreenShortestSide(context) - 16,
titleActionButtonMaxLines: titleActionButtonMaxLines,
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
textContent: message,
title: title ?? '',
iconWidget: icon,
margin: dialogMargin,
widthDialog: responsiveUtils.getSizeScreenWidth(context),
confirmBackgroundButtonColor: actionButtonColor,
cancelBackgroundButtonColor: cancelButtonColor,
cancelLabelButtonColor: cancelLabelButtonColor,
confirmLabelButtonColor: confirmLabelButtonColor,
styleContent: messageStyle,
styleTitle: titleStyle,
styleTextCancelButton: cancelStyle,
styleTextConfirmButton: actionStyle,
confirmText: actionName,
cancelText: hasCancelButton ? cancelTitle ?? AppLocalizations.of(context).cancel : '',
useIconAsBasicLogo: useIconAsBasicLogo,
@@ -151,15 +131,12 @@ mixin MessageDialogActionMixin {
backgroundColor: Colors.transparent,
isDismissible: outsideDismissible,
enableDrag: true,
ignoreSafeArea: false,
ignoreSafeArea: true,
shape: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(18))),
);
} else {
return (ConfirmationDialogActionSheetBuilder(context, listTextSpan: listTextSpan)
..messageText(message)
..styleConfirmButton(actionStyle)
..styleMessage(messageStyle)
..styleCancelButton(cancelStyle)
..onCancelAction(
cancelTitle ?? AppLocalizations.of(context).cancel,
() {
@@ -182,7 +159,6 @@ mixin MessageDialogActionMixin {
key: key,
imagePath: imagePaths,
listTextSpan: listTextSpan,
titleActionButtonMaxLines: titleActionButtonMaxLines,
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
useIconAsBasicLogo: useIconAsBasicLogo,
title: title ?? '',
@@ -192,10 +168,6 @@ mixin MessageDialogActionMixin {
cancelBackgroundButtonColor: cancelButtonColor,
cancelLabelButtonColor: cancelLabelButtonColor,
confirmLabelButtonColor: confirmLabelButtonColor,
styleContent: messageStyle,
styleTitle: titleStyle,
styleTextCancelButton: cancelStyle,
styleTextConfirmButton: actionStyle,
confirmText: actionName,
cancelText: hasCancelButton ? cancelTitle ?? AppLocalizations.of(context).cancel : '',
onConfirmButtonAction: () {
@@ -784,6 +784,7 @@ class ComposerController extends BaseController
title: AppLocalizations.of(context).sending_failed,
hasCancelButton: false,
showAsBottomSheet: true,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
).whenComplete(() => _sendButtonState = ButtonState.enabled);
return;
}
@@ -804,7 +805,8 @@ class ComposerController extends BaseController
},
showAsBottomSheet: true,
title: AppLocalizations.of(context).sending_failed,
hasCancelButton: false
hasCancelButton: false,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
).whenComplete(() => _sendButtonState = ButtonState.enabled);
return;
}
@@ -819,6 +821,7 @@ class ComposerController extends BaseController
autoPerformPopBack: false,
title: AppLocalizations.of(context).empty_subject,
showAsBottomSheet: true,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
).whenComplete(() => _sendButtonState = ButtonState.enabled);
return;
}
@@ -830,7 +833,8 @@ class ComposerController extends BaseController
AppLocalizations.of(context).got_it,
title: AppLocalizations.of(context).sending_failed,
showAsBottomSheet: true,
hasCancelButton: false
hasCancelButton: false,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
).whenComplete(() => _sendButtonState = ButtonState.enabled);
return;
}
@@ -1933,7 +1937,6 @@ class ComposerController extends BaseController
alignCenter: true,
outsideDismissible: false,
autoPerformPopBack: false,
titleActionButtonMaxLines: 1,
isArrangeActionButtonsVertical: true,
usePopScope: true,
onConfirmAction: () => _handleSaveMessageToDraft(context),
@@ -1968,14 +1968,13 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
}
},
showAsBottomSheet: true,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
title: AppLocalizations.of(context).unsubscribeMail,
messageStyle: ThemeUtils.textStyleBodyBody2(color: AppColor.steelGray400),
listTextSpan: [
TextSpan(text: AppLocalizations.of(context).unsubscribeMailDialogMessage),
TextSpan(
text: ' ${presentationEmail.getSenderName()}',
style: ThemeUtils.textStyleBodyBody2(
color: AppColor.steelGray400,
style: ThemeUtils.textStyleM3BodyMedium1.copyWith(
fontWeight: FontWeight.w700,
),
),
@@ -127,6 +127,7 @@ class ForwardController extends BaseController {
cancelTitle: AppLocalizations.of(context).remove,
onCancelAction: () => _handleDeleteRecipientAction({emailAddress}),
showAsBottomSheet: true,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
);
}
@@ -210,6 +211,7 @@ class ForwardController extends BaseController {
cancelTitle: AppLocalizations.of(context).remove,
onCancelAction: () => _handleDeleteRecipientAction(listEmailAddress),
showAsBottomSheet: true,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
);
}
@@ -32,7 +32,6 @@ class DeleteIdentityDialogBuilder extends StatelessWidget {
appLocalizations: appLocalizations,
alignment: Alignment.bottomCenter,
outsideDialogPadding: EdgeInsets.only(bottom: PlatformInfo.isWeb ? 42 : 16),
widthDialog: MediaQuery.of(context).size.width - 16,
),
landscapeMobile: _buildDeleteDialog(appLocalizations: appLocalizations),
tablet: _buildDeleteDialog(appLocalizations: appLocalizations),
@@ -50,7 +49,6 @@ class DeleteIdentityDialogBuilder extends StatelessWidget {
required AppLocalizations appLocalizations,
Alignment? alignment,
EdgeInsets? outsideDialogPadding,
double? widthDialog,
}) {
return ConfirmationDialogBuilder(
key: const Key('confirm_dialog_delete_identity'),
@@ -61,7 +59,6 @@ class DeleteIdentityDialogBuilder extends StatelessWidget {
confirmText: appLocalizations.cancel,
alignment: alignment,
outsideDialogPadding: outsideDialogPadding,
widthDialog: widthDialog,
onCancelButtonAction: onDeleteIdentityAction,
onConfirmButtonAction: popBack,
onCloseButtonAction: popBack,