TF-3952 Change modal style in Forwarding
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -254,6 +254,7 @@ class _BodyContent extends StatelessWidget {
|
|||||||
style: ThemeUtils.textStyleM3HeadlineSmall.copyWith(
|
style: ThemeUtils.textStyleM3HeadlineSmall.copyWith(
|
||||||
color: AppColor.textPrimary,
|
color: AppColor.textPrimary,
|
||||||
),
|
),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
: const SizedBox.shrink();
|
: const SizedBox.shrink();
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ mixin MessageDialogActionMixin {
|
|||||||
bool useIconAsBasicLogo = false,
|
bool useIconAsBasicLogo = false,
|
||||||
bool isScrollContentEnabled = false,
|
bool isScrollContentEnabled = false,
|
||||||
EdgeInsetsGeometry? dialogMargin,
|
EdgeInsetsGeometry? dialogMargin,
|
||||||
|
EdgeInsets? outsideDialogPadding,
|
||||||
}
|
}
|
||||||
) async {
|
) async {
|
||||||
final responsiveUtils = Get.find<ResponsiveUtils>();
|
final responsiveUtils = Get.find<ResponsiveUtils>();
|
||||||
@@ -61,6 +62,10 @@ mixin MessageDialogActionMixin {
|
|||||||
confirmText: actionName,
|
confirmText: actionName,
|
||||||
cancelText: hasCancelButton ? cancelTitle ?? AppLocalizations.of(context).cancel : '',
|
cancelText: hasCancelButton ? cancelTitle ?? AppLocalizations.of(context).cancel : '',
|
||||||
iconWidget: icon,
|
iconWidget: icon,
|
||||||
|
outsideDialogPadding: outsideDialogPadding ??
|
||||||
|
(responsiveUtils.isScreenWithShortestSide(context)
|
||||||
|
? const EdgeInsets.all(16)
|
||||||
|
: null),
|
||||||
cancelBackgroundButtonColor: cancelButtonColor,
|
cancelBackgroundButtonColor: cancelButtonColor,
|
||||||
confirmBackgroundButtonColor: actionButtonColor,
|
confirmBackgroundButtonColor: actionButtonColor,
|
||||||
cancelLabelButtonColor: cancelLabelButtonColor,
|
cancelLabelButtonColor: cancelLabelButtonColor,
|
||||||
|
|||||||
@@ -123,10 +123,11 @@ class ForwardController extends BaseController {
|
|||||||
context,
|
context,
|
||||||
title: AppLocalizations.of(context).deleteRecipient,
|
title: AppLocalizations.of(context).deleteRecipient,
|
||||||
AppLocalizations.of(context).messageConfirmationDialogDeleteRecipientForward(emailAddress),
|
AppLocalizations.of(context).messageConfirmationDialogDeleteRecipientForward(emailAddress),
|
||||||
AppLocalizations.of(context).cancel,
|
AppLocalizations.of(context).remove,
|
||||||
cancelTitle: AppLocalizations.of(context).remove,
|
cancelTitle: AppLocalizations.of(context).cancel,
|
||||||
onCancelAction: () => _handleDeleteRecipientAction({emailAddress}),
|
onCloseButtonAction: popBack,
|
||||||
showAsBottomSheet: true,
|
onConfirmAction: () => _handleDeleteRecipientAction({emailAddress}),
|
||||||
|
alignCenter: true,
|
||||||
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
|
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -207,10 +208,11 @@ class ForwardController extends BaseController {
|
|||||||
context,
|
context,
|
||||||
title: AppLocalizations.of(context).deleteRecipient,
|
title: AppLocalizations.of(context).deleteRecipient,
|
||||||
AppLocalizations.of(context).messageConfirmationDialogDeleteAllRecipientForward,
|
AppLocalizations.of(context).messageConfirmationDialogDeleteAllRecipientForward,
|
||||||
AppLocalizations.of(context).cancel,
|
AppLocalizations.of(context).remove,
|
||||||
cancelTitle: AppLocalizations.of(context).remove,
|
cancelTitle: AppLocalizations.of(context).cancel,
|
||||||
onCancelAction: () => _handleDeleteRecipientAction(listEmailAddress),
|
onConfirmAction: () => _handleDeleteRecipientAction(listEmailAddress),
|
||||||
showAsBottomSheet: true,
|
onCloseButtonAction: popBack,
|
||||||
|
alignCenter: true,
|
||||||
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
|
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+19
-6
@@ -23,6 +23,7 @@ import 'package:tmail_ui_user/features/contact/presentation/widgets/contact_sugg
|
|||||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/exceptions/forward_exception.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/exceptions/forward_exception.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/utils/app_config.dart';
|
import 'package:tmail_ui_user/main/utils/app_config.dart';
|
||||||
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||||
|
|
||||||
@@ -452,15 +453,27 @@ class _AutocompleteContactTextFieldWithTagsState extends State<AutocompleteConta
|
|||||||
VoidCallback? confirmAction,
|
VoidCallback? confirmAction,
|
||||||
VoidCallback? cancelAction
|
VoidCallback? cancelAction
|
||||||
}) async {
|
}) async {
|
||||||
|
final appLocalizations = AppLocalizations.of(context);
|
||||||
|
final forwardWarningMessage = AppConfig.forwardWarningMessage;
|
||||||
|
final title = forwardWarningMessage != null
|
||||||
|
? null
|
||||||
|
: appLocalizations.dialogWarningTitleForForwardsToOtherDomains;
|
||||||
|
final message = forwardWarningMessage
|
||||||
|
?? appLocalizations.dialogWarningMessageForForwardsToOtherDomains;
|
||||||
|
|
||||||
await showConfirmDialogAction(
|
await showConfirmDialogAction(
|
||||||
context,
|
context,
|
||||||
AppLocalizations.of(context).doYouWantToProceed,
|
message,
|
||||||
AppLocalizations.of(context).no,
|
AppLocalizations.of(context).yes,
|
||||||
title: AppConfig.getForwardWarningMessage(context),
|
title: title,
|
||||||
cancelTitle: AppLocalizations.of(context).yes,
|
cancelTitle: AppLocalizations.of(context).no,
|
||||||
alignCenter: true,
|
alignCenter: true,
|
||||||
onConfirmAction: cancelAction,
|
onConfirmAction: confirmAction,
|
||||||
onCancelAction: confirmAction,
|
onCancelAction: cancelAction,
|
||||||
|
onCloseButtonAction: () {
|
||||||
|
popBack();
|
||||||
|
cancelAction?.call();
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+6
-2
@@ -4,6 +4,7 @@ import 'package:core/presentation/utils/responsive_utils.dart';
|
|||||||
import 'package:core/presentation/utils/theme_utils.dart';
|
import 'package:core/presentation/utils/theme_utils.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/utils/app_config.dart';
|
import 'package:tmail_ui_user/main/utils/app_config.dart';
|
||||||
|
|
||||||
class ForwardWarningBanner extends StatelessWidget {
|
class ForwardWarningBanner extends StatelessWidget {
|
||||||
@@ -28,7 +29,9 @@ class ForwardWarningBanner extends StatelessWidget {
|
|||||||
color: AppColor.lightGrayEAEDF2,
|
color: AppColor.lightGrayEAEDF2,
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: responsiveUtils.isWebDesktop(context)
|
||||||
|
? CrossAxisAlignment.center
|
||||||
|
: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
SvgPicture.asset(
|
SvgPicture.asset(
|
||||||
imagePaths.icInfoCircleOutline,
|
imagePaths.icInfoCircleOutline,
|
||||||
@@ -40,7 +43,8 @@ class ForwardWarningBanner extends StatelessWidget {
|
|||||||
const SizedBox(width: 8),
|
const SizedBox(width: 8),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
AppConfig.getForwardWarningMessage(context),
|
AppConfig.forwardWarningMessage ??
|
||||||
|
AppLocalizations.of(context).messageWarningDialogForForwardsToOtherDomains,
|
||||||
style: ThemeUtils.textStyleInter400.copyWith(
|
style: ThemeUtils.textStyleInter400.copyWith(
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
color: AppColor.steelGray400,
|
color: AppColor.steelGray400,
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ class KeepCopyInInboxWidget extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.only(top: 8),
|
padding: const EdgeInsets.only(top: 8, bottom: 16),
|
||||||
child: Row(
|
child: Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ class NumberOfRecipientWidget extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final appLocalizations = AppLocalizations.of(context);
|
final appLocalizations = AppLocalizations.of(context);
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 36),
|
padding: const EdgeInsets.only(top: 20, bottom: 36),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
|
|||||||
@@ -3706,12 +3706,6 @@
|
|||||||
"placeholders_order": [],
|
"placeholders_order": [],
|
||||||
"placeholders": {}
|
"placeholders": {}
|
||||||
},
|
},
|
||||||
"doYouWantToProceed": "Do you want to proceed?",
|
|
||||||
"@doYouWantToProceed": {
|
|
||||||
"type": "text",
|
|
||||||
"placeholders_order": [],
|
|
||||||
"placeholders": {}
|
|
||||||
},
|
|
||||||
"messageWarningDialogForForwardsToOtherDomains": "You are redirecting emails to another domain. This could be a security threat or considered illegal data extraction.",
|
"messageWarningDialogForForwardsToOtherDomains": "You are redirecting emails to another domain. This could be a security threat or considered illegal data extraction.",
|
||||||
"@messageWarningDialogForForwardsToOtherDomains": {
|
"@messageWarningDialogForForwardsToOtherDomains": {
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -4659,5 +4653,17 @@
|
|||||||
"type": "text",
|
"type": "text",
|
||||||
"placeholders_order": [],
|
"placeholders_order": [],
|
||||||
"placeholders": {}
|
"placeholders": {}
|
||||||
|
},
|
||||||
|
"dialogWarningTitleForForwardsToOtherDomains": "You are redirecting emails to another domain.",
|
||||||
|
"@dialogWarningTitleForForwardsToOtherDomains": {
|
||||||
|
"type": "text",
|
||||||
|
"placeholders_order": [],
|
||||||
|
"placeholders": {}
|
||||||
|
},
|
||||||
|
"dialogWarningMessageForForwardsToOtherDomains": "This could be a security threat or considered illegal data extraction. Do you want to proceed?",
|
||||||
|
"@dialogWarningMessageForForwardsToOtherDomains": {
|
||||||
|
"type": "text",
|
||||||
|
"placeholders_order": [],
|
||||||
|
"placeholders": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3848,12 +3848,6 @@ class AppLocalizations {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
String get doYouWantToProceed {
|
|
||||||
return Intl.message(
|
|
||||||
'Do you want to proceed?',
|
|
||||||
name: 'doYouWantToProceed');
|
|
||||||
}
|
|
||||||
|
|
||||||
String get messageWarningDialogForForwardsToOtherDomains {
|
String get messageWarningDialogForForwardsToOtherDomains {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'You are redirecting emails to another domain. This could be a security threat or considered illegal data extraction.',
|
'You are redirecting emails to another domain. This could be a security threat or considered illegal data extraction.',
|
||||||
@@ -4912,4 +4906,18 @@ class AppLocalizations {
|
|||||||
name: 'keepACopyInInboxDescription',
|
name: 'keepACopyInInboxDescription',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String get dialogWarningTitleForForwardsToOtherDomains {
|
||||||
|
return Intl.message(
|
||||||
|
'You are redirecting emails to another domain.',
|
||||||
|
name: 'dialogWarningTitleForForwardsToOtherDomains',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get dialogWarningMessageForForwardsToOtherDomains {
|
||||||
|
return Intl.message(
|
||||||
|
'This could be a security threat or considered illegal data extraction. Do you want to proceed?',
|
||||||
|
name: 'dialogWarningMessageForForwardsToOtherDomains',
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/network/config/oidc_constant.dart';
|
import 'package:tmail_ui_user/features/login/data/network/config/oidc_constant.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
|
||||||
|
|
||||||
class AppConfig {
|
class AppConfig {
|
||||||
const AppConfig._();
|
const AppConfig._();
|
||||||
@@ -57,13 +55,14 @@ class AppConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static String getForwardWarningMessage(BuildContext context) {
|
static String? get forwardWarningMessage {
|
||||||
final forwardWarningMessage = dotenv.get(
|
final forwardWarningMessage = dotenv.get(
|
||||||
'FORWARD_WARNING_MESSAGE',
|
'FORWARD_WARNING_MESSAGE',
|
||||||
fallback: AppLocalizations.of(context).messageWarningDialogForForwardsToOtherDomains);
|
fallback: '',
|
||||||
|
);
|
||||||
|
|
||||||
if (forwardWarningMessage.trim().isEmpty) {
|
if (forwardWarningMessage.trim().isEmpty) {
|
||||||
return AppLocalizations.of(context).messageWarningDialogForForwardsToOtherDomains;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return forwardWarningMessage;
|
return forwardWarningMessage;
|
||||||
|
|||||||
Reference in New Issue
Block a user