diff --git a/CHANGELOG.md b/CHANGELOG.md index 3007741..3eb0f80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.0.1 + +- Added an extra widget builder to add more customizability, for example to add 'today' and 'close' buttons. + ## 4.0.0 - Controller has to be specified given to the [DragDownDateTimePicker] so the date can be changed outside of the widget itself. diff --git a/lib/src/overlay_date_time_picker.dart b/lib/src/overlay_date_time_picker.dart index 302fee6..27c0369 100644 --- a/lib/src/overlay_date_time_picker.dart +++ b/lib/src/overlay_date_time_picker.dart @@ -32,6 +32,7 @@ class OverlayDateTimePicker extends StatefulWidget { this.dateTimeConstraint = const DateTimeConstraint(), this.onNextPageButtonBuilder, this.onPreviousPageButtonBuilder, + this.extraWidgetBuilder, this.isShown = false, }) : assert(child != null || buttonBuilder != null); @@ -96,6 +97,9 @@ class OverlayDateTimePicker extends StatefulWidget { final Widget Function(void Function()? onPressed)? onPreviousPageButtonBuilder; + /// a [Widget] that can add custom widgets beneath the [OverlayDateTimeContent] for enhanced functionality + final Widget? extraWidgetBuilder; + @override State createState() => _OverlayDateTimePickerState(); } @@ -241,6 +245,7 @@ class _OverlayDateTimePickerState extends State { dateTimeConstraint: widget.dateTimeConstraint, onNextPageButtonChild: widget.onNextPageButtonBuilder, onPreviousPageButtonChild: widget.onPreviousPageButtonBuilder, + extraWidgetBuilder: widget.extraWidgetBuilder, ), ), ), diff --git a/lib/src/widgets/overlay_date_time_picker/overlay.dart b/lib/src/widgets/overlay_date_time_picker/overlay.dart index ddcf972..394fcae 100644 --- a/lib/src/widgets/overlay_date_time_picker/overlay.dart +++ b/lib/src/widgets/overlay_date_time_picker/overlay.dart @@ -25,6 +25,7 @@ class OverlayDateTimeContent extends StatefulWidget { required this.dateTimeConstraint, required this.onPreviousPageButtonChild, required this.onNextPageButtonChild, + this.extraWidgetBuilder, }); final DateTimePickerTheme theme; @@ -35,6 +36,7 @@ class OverlayDateTimeContent extends StatefulWidget { final bool showWeekDays; final DateTimeConstraint dateTimeConstraint; + final Widget? extraWidgetBuilder; final Widget Function(void Function()? onPressed)? onNextPageButtonChild; final Widget Function(void Function()? onPressed)? onPreviousPageButtonChild; @@ -182,7 +184,8 @@ class _OverlayDateTimeContentState extends State { ), ], ), - ) + ), + if (widget.extraWidgetBuilder != null) widget.extraWidgetBuilder!, ], ); } diff --git a/pubspec.yaml b/pubspec.yaml index addf7c5..b49fe14 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_date_time_picker description: A Flutter package for date and time picker. -version: 4.0.0 +version: 4.0.1 environment: sdk: ">=3.0.0 <4.0.0"