diff --git a/core/lib/presentation/views/dialog/confirmation_dialog_builder.dart b/core/lib/presentation/views/dialog/confirmation_dialog_builder.dart index fe4742d9d..578480a42 100644 --- a/core/lib/presentation/views/dialog/confirmation_dialog_builder.dart +++ b/core/lib/presentation/views/dialog/confirmation_dialog_builder.dart @@ -32,6 +32,7 @@ class ConfirmationDialogBuilder extends StatelessWidget { final List? listTextSpan; final bool isArrangeActionButtonsVertical; final bool useIconAsBasicLogo; + final bool isScrollContentEnabled; final OnConfirmButtonAction? onConfirmButtonAction; final OnCancelButtonAction? onCancelButtonAction; final OnCloseButtonAction? onCloseButtonAction; @@ -59,6 +60,7 @@ class ConfirmationDialogBuilder extends StatelessWidget { this.listTextSpan, this.isArrangeActionButtonsVertical = false, this.useIconAsBasicLogo = false, + this.isScrollContentEnabled = false, this.onConfirmButtonAction, this.onCancelButtonAction, this.onCloseButtonAction, @@ -84,6 +86,7 @@ class ConfirmationDialogBuilder extends StatelessWidget { listTextSpan: listTextSpan, isArrangeActionButtonsVertical: isArrangeActionButtonsVertical, useIconAsBasicLogo: useIconAsBasicLogo, + isScrollContentEnabled: isScrollContentEnabled, onConfirmButtonAction: onConfirmButtonAction, onCancelButtonAction: onCancelButtonAction, onCloseButtonAction: onCloseButtonAction, @@ -112,6 +115,7 @@ class ConfirmationDialogBuilder extends StatelessWidget { listTextSpan: listTextSpan, isArrangeActionButtonsVertical: isArrangeActionButtonsVertical, useIconAsBasicLogo: useIconAsBasicLogo, + isScrollContentEnabled: isScrollContentEnabled, onConfirmButtonAction: onConfirmButtonAction, onCancelButtonAction: onCancelButtonAction, onCloseButtonAction: onCloseButtonAction, @@ -137,6 +141,7 @@ class _BodyContent extends StatelessWidget { final List? listTextSpan; final bool isArrangeActionButtonsVertical; final bool useIconAsBasicLogo; + final bool isScrollContentEnabled; final OnConfirmButtonAction? onConfirmButtonAction; final OnCancelButtonAction? onCancelButtonAction; final OnCloseButtonAction? onCloseButtonAction; @@ -147,6 +152,10 @@ class _BodyContent extends StatelessWidget { required this.textContent, required this.confirmText, required this.cancelText, + required this.maxWidth, + required this.isArrangeActionButtonsVertical, + required this.useIconAsBasicLogo, + this.isScrollContentEnabled = false, this.iconWidget, this.additionalWidgetContent, this.cancelBackgroundButtonColor, @@ -154,10 +163,7 @@ class _BodyContent extends StatelessWidget { this.cancelLabelButtonColor, this.confirmLabelButtonColor, this.margin, - required this.maxWidth, this.listTextSpan, - required this.isArrangeActionButtonsVertical, - required this.useIconAsBasicLogo, this.onConfirmButtonAction, this.onCancelButtonAction, this.onCloseButtonAction, @@ -165,7 +171,7 @@ class _BodyContent extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( + final child = Container( width: 421, constraints: BoxConstraints(maxWidth: maxWidth), decoration: const BoxDecoration( @@ -197,6 +203,12 @@ class _BodyContent extends StatelessWidget { ], ), ); + + if (isScrollContentEnabled) { + return SingleChildScrollView(child: child); + } else { + return child; + } } bool _showCloseButton() => onCloseButtonAction != null; diff --git a/lib/features/base/mixin/message_dialog_action_mixin.dart b/lib/features/base/mixin/message_dialog_action_mixin.dart index 0b881d032..f0248abe8 100644 --- a/lib/features/base/mixin/message_dialog_action_mixin.dart +++ b/lib/features/base/mixin/message_dialog_action_mixin.dart @@ -40,6 +40,7 @@ mixin MessageDialogActionMixin { PopInvokedWithResultCallback? onPopInvoked, bool isArrangeActionButtonsVertical = false, bool useIconAsBasicLogo = false, + bool isScrollContentEnabled = false, EdgeInsetsGeometry? dialogMargin, } ) async { @@ -54,6 +55,7 @@ mixin MessageDialogActionMixin { listTextSpan: listTextSpan, isArrangeActionButtonsVertical: isArrangeActionButtonsVertical, useIconAsBasicLogo: useIconAsBasicLogo, + isScrollContentEnabled: isScrollContentEnabled, title: title ?? '', textContent: message, confirmText: actionName, @@ -106,6 +108,7 @@ mixin MessageDialogActionMixin { confirmText: actionName, cancelText: hasCancelButton ? cancelTitle ?? AppLocalizations.of(context).cancel : '', useIconAsBasicLogo: useIconAsBasicLogo, + isScrollContentEnabled: isScrollContentEnabled, onConfirmButtonAction: () { if (autoPerformPopBack) { popBack(); @@ -161,6 +164,7 @@ mixin MessageDialogActionMixin { listTextSpan: listTextSpan, isArrangeActionButtonsVertical: isArrangeActionButtonsVertical, useIconAsBasicLogo: useIconAsBasicLogo, + isScrollContentEnabled: isScrollContentEnabled, title: title ?? '', textContent: message, iconWidget: icon, diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index 0132d6915..d043b86d0 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -1938,6 +1938,7 @@ class ComposerController extends BaseController outsideDismissible: false, autoPerformPopBack: false, isArrangeActionButtonsVertical: true, + isScrollContentEnabled: responsiveUtils.isLandscapeMobile(context), usePopScope: true, onConfirmAction: () => _handleSaveMessageToDraft(context), onCancelAction: () {