Fix bottom overflow of confirm dialog save message on landscape mobile
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -32,6 +32,7 @@ class ConfirmationDialogBuilder extends StatelessWidget {
|
|||||||
final List<TextSpan>? listTextSpan;
|
final List<TextSpan>? listTextSpan;
|
||||||
final bool isArrangeActionButtonsVertical;
|
final bool isArrangeActionButtonsVertical;
|
||||||
final bool useIconAsBasicLogo;
|
final bool useIconAsBasicLogo;
|
||||||
|
final bool isScrollContentEnabled;
|
||||||
final OnConfirmButtonAction? onConfirmButtonAction;
|
final OnConfirmButtonAction? onConfirmButtonAction;
|
||||||
final OnCancelButtonAction? onCancelButtonAction;
|
final OnCancelButtonAction? onCancelButtonAction;
|
||||||
final OnCloseButtonAction? onCloseButtonAction;
|
final OnCloseButtonAction? onCloseButtonAction;
|
||||||
@@ -59,6 +60,7 @@ class ConfirmationDialogBuilder extends StatelessWidget {
|
|||||||
this.listTextSpan,
|
this.listTextSpan,
|
||||||
this.isArrangeActionButtonsVertical = false,
|
this.isArrangeActionButtonsVertical = false,
|
||||||
this.useIconAsBasicLogo = false,
|
this.useIconAsBasicLogo = false,
|
||||||
|
this.isScrollContentEnabled = false,
|
||||||
this.onConfirmButtonAction,
|
this.onConfirmButtonAction,
|
||||||
this.onCancelButtonAction,
|
this.onCancelButtonAction,
|
||||||
this.onCloseButtonAction,
|
this.onCloseButtonAction,
|
||||||
@@ -84,6 +86,7 @@ class ConfirmationDialogBuilder extends StatelessWidget {
|
|||||||
listTextSpan: listTextSpan,
|
listTextSpan: listTextSpan,
|
||||||
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
|
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
|
||||||
useIconAsBasicLogo: useIconAsBasicLogo,
|
useIconAsBasicLogo: useIconAsBasicLogo,
|
||||||
|
isScrollContentEnabled: isScrollContentEnabled,
|
||||||
onConfirmButtonAction: onConfirmButtonAction,
|
onConfirmButtonAction: onConfirmButtonAction,
|
||||||
onCancelButtonAction: onCancelButtonAction,
|
onCancelButtonAction: onCancelButtonAction,
|
||||||
onCloseButtonAction: onCloseButtonAction,
|
onCloseButtonAction: onCloseButtonAction,
|
||||||
@@ -112,6 +115,7 @@ class ConfirmationDialogBuilder extends StatelessWidget {
|
|||||||
listTextSpan: listTextSpan,
|
listTextSpan: listTextSpan,
|
||||||
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
|
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
|
||||||
useIconAsBasicLogo: useIconAsBasicLogo,
|
useIconAsBasicLogo: useIconAsBasicLogo,
|
||||||
|
isScrollContentEnabled: isScrollContentEnabled,
|
||||||
onConfirmButtonAction: onConfirmButtonAction,
|
onConfirmButtonAction: onConfirmButtonAction,
|
||||||
onCancelButtonAction: onCancelButtonAction,
|
onCancelButtonAction: onCancelButtonAction,
|
||||||
onCloseButtonAction: onCloseButtonAction,
|
onCloseButtonAction: onCloseButtonAction,
|
||||||
@@ -137,6 +141,7 @@ class _BodyContent extends StatelessWidget {
|
|||||||
final List<TextSpan>? listTextSpan;
|
final List<TextSpan>? listTextSpan;
|
||||||
final bool isArrangeActionButtonsVertical;
|
final bool isArrangeActionButtonsVertical;
|
||||||
final bool useIconAsBasicLogo;
|
final bool useIconAsBasicLogo;
|
||||||
|
final bool isScrollContentEnabled;
|
||||||
final OnConfirmButtonAction? onConfirmButtonAction;
|
final OnConfirmButtonAction? onConfirmButtonAction;
|
||||||
final OnCancelButtonAction? onCancelButtonAction;
|
final OnCancelButtonAction? onCancelButtonAction;
|
||||||
final OnCloseButtonAction? onCloseButtonAction;
|
final OnCloseButtonAction? onCloseButtonAction;
|
||||||
@@ -147,6 +152,10 @@ class _BodyContent extends StatelessWidget {
|
|||||||
required this.textContent,
|
required this.textContent,
|
||||||
required this.confirmText,
|
required this.confirmText,
|
||||||
required this.cancelText,
|
required this.cancelText,
|
||||||
|
required this.maxWidth,
|
||||||
|
required this.isArrangeActionButtonsVertical,
|
||||||
|
required this.useIconAsBasicLogo,
|
||||||
|
this.isScrollContentEnabled = false,
|
||||||
this.iconWidget,
|
this.iconWidget,
|
||||||
this.additionalWidgetContent,
|
this.additionalWidgetContent,
|
||||||
this.cancelBackgroundButtonColor,
|
this.cancelBackgroundButtonColor,
|
||||||
@@ -154,10 +163,7 @@ class _BodyContent extends StatelessWidget {
|
|||||||
this.cancelLabelButtonColor,
|
this.cancelLabelButtonColor,
|
||||||
this.confirmLabelButtonColor,
|
this.confirmLabelButtonColor,
|
||||||
this.margin,
|
this.margin,
|
||||||
required this.maxWidth,
|
|
||||||
this.listTextSpan,
|
this.listTextSpan,
|
||||||
required this.isArrangeActionButtonsVertical,
|
|
||||||
required this.useIconAsBasicLogo,
|
|
||||||
this.onConfirmButtonAction,
|
this.onConfirmButtonAction,
|
||||||
this.onCancelButtonAction,
|
this.onCancelButtonAction,
|
||||||
this.onCloseButtonAction,
|
this.onCloseButtonAction,
|
||||||
@@ -165,7 +171,7 @@ class _BodyContent extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
final child = Container(
|
||||||
width: 421,
|
width: 421,
|
||||||
constraints: BoxConstraints(maxWidth: maxWidth),
|
constraints: BoxConstraints(maxWidth: maxWidth),
|
||||||
decoration: const BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
@@ -197,6 +203,12 @@ class _BodyContent extends StatelessWidget {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (isScrollContentEnabled) {
|
||||||
|
return SingleChildScrollView(child: child);
|
||||||
|
} else {
|
||||||
|
return child;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _showCloseButton() => onCloseButtonAction != null;
|
bool _showCloseButton() => onCloseButtonAction != null;
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ mixin MessageDialogActionMixin {
|
|||||||
PopInvokedWithResultCallback? onPopInvoked,
|
PopInvokedWithResultCallback? onPopInvoked,
|
||||||
bool isArrangeActionButtonsVertical = false,
|
bool isArrangeActionButtonsVertical = false,
|
||||||
bool useIconAsBasicLogo = false,
|
bool useIconAsBasicLogo = false,
|
||||||
|
bool isScrollContentEnabled = false,
|
||||||
EdgeInsetsGeometry? dialogMargin,
|
EdgeInsetsGeometry? dialogMargin,
|
||||||
}
|
}
|
||||||
) async {
|
) async {
|
||||||
@@ -54,6 +55,7 @@ mixin MessageDialogActionMixin {
|
|||||||
listTextSpan: listTextSpan,
|
listTextSpan: listTextSpan,
|
||||||
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
|
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
|
||||||
useIconAsBasicLogo: useIconAsBasicLogo,
|
useIconAsBasicLogo: useIconAsBasicLogo,
|
||||||
|
isScrollContentEnabled: isScrollContentEnabled,
|
||||||
title: title ?? '',
|
title: title ?? '',
|
||||||
textContent: message,
|
textContent: message,
|
||||||
confirmText: actionName,
|
confirmText: actionName,
|
||||||
@@ -106,6 +108,7 @@ mixin MessageDialogActionMixin {
|
|||||||
confirmText: actionName,
|
confirmText: actionName,
|
||||||
cancelText: hasCancelButton ? cancelTitle ?? AppLocalizations.of(context).cancel : '',
|
cancelText: hasCancelButton ? cancelTitle ?? AppLocalizations.of(context).cancel : '',
|
||||||
useIconAsBasicLogo: useIconAsBasicLogo,
|
useIconAsBasicLogo: useIconAsBasicLogo,
|
||||||
|
isScrollContentEnabled: isScrollContentEnabled,
|
||||||
onConfirmButtonAction: () {
|
onConfirmButtonAction: () {
|
||||||
if (autoPerformPopBack) {
|
if (autoPerformPopBack) {
|
||||||
popBack();
|
popBack();
|
||||||
@@ -161,6 +164,7 @@ mixin MessageDialogActionMixin {
|
|||||||
listTextSpan: listTextSpan,
|
listTextSpan: listTextSpan,
|
||||||
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
|
isArrangeActionButtonsVertical: isArrangeActionButtonsVertical,
|
||||||
useIconAsBasicLogo: useIconAsBasicLogo,
|
useIconAsBasicLogo: useIconAsBasicLogo,
|
||||||
|
isScrollContentEnabled: isScrollContentEnabled,
|
||||||
title: title ?? '',
|
title: title ?? '',
|
||||||
textContent: message,
|
textContent: message,
|
||||||
iconWidget: icon,
|
iconWidget: icon,
|
||||||
|
|||||||
@@ -1938,6 +1938,7 @@ class ComposerController extends BaseController
|
|||||||
outsideDismissible: false,
|
outsideDismissible: false,
|
||||||
autoPerformPopBack: false,
|
autoPerformPopBack: false,
|
||||||
isArrangeActionButtonsVertical: true,
|
isArrangeActionButtonsVertical: true,
|
||||||
|
isScrollContentEnabled: responsiveUtils.isLandscapeMobile(context),
|
||||||
usePopScope: true,
|
usePopScope: true,
|
||||||
onConfirmAction: () => _handleSaveMessageToDraft(context),
|
onConfirmAction: () => _handleSaveMessageToDraft(context),
|
||||||
onCancelAction: () {
|
onCancelAction: () {
|
||||||
|
|||||||
Reference in New Issue
Block a user