diff --git a/lib/src/modal_type/wolt_bottom_sheet_type.dart b/lib/src/modal_type/wolt_bottom_sheet_type.dart index 63e39e0a..9b6ae2d9 100644 --- a/lib/src/modal_type/wolt_bottom_sheet_type.dart +++ b/lib/src/modal_type/wolt_bottom_sheet_type.dart @@ -65,7 +65,7 @@ class WoltBottomSheetType extends WoltModalType { return BoxConstraints( minWidth: availableSize.width, maxWidth: availableSize.width, - minHeight: availableSize.height * 0.4, + minHeight: 0, maxHeight: availableSize.height * 0.9, ); } diff --git a/lib/src/modal_type/wolt_dialog_type.dart b/lib/src/modal_type/wolt_dialog_type.dart index d56f4b42..8d6668a7 100644 --- a/lib/src/modal_type/wolt_dialog_type.dart +++ b/lib/src/modal_type/wolt_dialog_type.dart @@ -69,14 +69,14 @@ class WoltDialogType extends WoltModalType { return BoxConstraints( minWidth: width, maxWidth: width, - minHeight: 360, + minHeight: 0, maxHeight: max(360, availableHeight * 0.8), ); } return BoxConstraints( minWidth: width, maxWidth: width, - minHeight: availableHeight * 0.8, + minHeight: 0, maxHeight: availableHeight * 0.8, ); } diff --git a/playground/lib/home/pages/modal_page_name.dart b/playground/lib/home/pages/modal_page_name.dart index 0971bdde..84c328f6 100644 --- a/playground/lib/home/pages/modal_page_name.dart +++ b/playground/lib/home/pages/modal_page_name.dart @@ -7,5 +7,6 @@ enum ModalPageName { customTopBar, updatePage, inAppNavigation, + minHeight, flexibleLayout, } diff --git a/playground/lib/home/pages/root_sheet_page.dart b/playground/lib/home/pages/root_sheet_page.dart index 75f8efb3..3ca4b1ce 100644 --- a/playground/lib/home/pages/root_sheet_page.dart +++ b/playground/lib/home/pages/root_sheet_page.dart @@ -2,6 +2,7 @@ import 'package:demo_ui_components/demo_ui_components.dart'; import 'package:flutter/material.dart'; import 'package:playground/home/pages/modal_page_name.dart'; import 'package:playground/home/pages/sheet_page_with_custom_top_bar.dart'; +import 'package:playground/home/pages/sheet_page_with_min_height.dart'; import 'package:playground/home/pages/sheet_page_with_update_page_method.dart'; import 'package:playground/home/pages/sheet_page_with_forced_max_height.dart'; import 'package:playground/home/pages/sheet_page_with_hero_image.dart'; @@ -27,6 +28,7 @@ class RootSheetPage { SheetPageWithHeroImage.build(isLastPage: false), SheetPageWithLazyList.build(isLastPage: false), SheetPageWithTextField.build(isLastPage: false), + SheetPageWithMinHeight.build(isLastPage: false), SheetPageWithInAppNavigation.build(isLastPage: false), SheetPageWithCustomTopBar.build(isLastPage: false), SheetPageWithNoPageTitleNoTopBar.build(isLastPage: false), @@ -78,6 +80,11 @@ class RootSheetPage { value: SheetPageWithLazyList.pageId, isSelected: false, ), + WoltSelectionListItemData( + title: 'Page with min height constraint', + value: SheetPageWithMinHeight.pageId, + isSelected: false, + ), WoltSelectionListItemData( title: 'Page with auto-focus text field', value: SheetPageWithTextField.pageId, @@ -132,6 +139,9 @@ class RootSheetPage { case ModalPageName.textField: destinationPage = SheetPageWithTextField.build(); break; + case ModalPageName.minHeight: + destinationPage = SheetPageWithMinHeight.build(); + break; case ModalPageName.noTitleNoTopBar: destinationPage = SheetPageWithNoPageTitleNoTopBar.build(); diff --git a/playground/lib/home/pages/sheet_page_with_min_height.dart b/playground/lib/home/pages/sheet_page_with_min_height.dart new file mode 100644 index 00000000..6a7defca --- /dev/null +++ b/playground/lib/home/pages/sheet_page_with_min_height.dart @@ -0,0 +1,33 @@ +import 'package:demo_ui_components/demo_ui_components.dart'; +import 'package:flutter/material.dart'; +import 'package:playground/home/pages/modal_page_name.dart'; +import 'package:wolt_modal_sheet/wolt_modal_sheet.dart'; + +class SheetPageWithMinHeight { + SheetPageWithMinHeight._(); + + static const ModalPageName pageId = ModalPageName.minHeight; + + static WoltModalSheetPage build({bool isLastPage = true}) { + return WoltModalSheetPage( + id: pageId, + hasTopBarLayer: false, + stickyActionBar: Padding( + padding: const EdgeInsets.fromLTRB(16, 0, 16, 16), + child: Builder(builder: (context) { + return WoltElevatedButton( + onPressed: isLastPage + ? Navigator.of(context).pop + : WoltModalSheet.of(context).showNext, + child: Text(isLastPage ? "Close" : "Next"), + ); + }), + ), + child: const Padding( + padding: EdgeInsets.only(bottom: 100, top: 16, left: 16, right: 16), + child: ModalSheetContentText( + 'This page is added to test the constraints for minimum height.'), + ), + ); + } +}