fix: initial time is optional

This commit is contained in:
Kafune 2023-08-10 11:26:38 +02:00
parent 960b8ecc3c
commit 3084d6c5f0
4 changed files with 25 additions and 17 deletions

View file

@ -30,4 +30,7 @@
* make compatible with flutter 3.10
## 2.2.0
* Dateformat optional on input from the user, defaulting to 24 hour format
* Dateformat optional on input from the user, defaulting to 24 hour format
## 2.2.1
* Initial time optional on input from the user, defaulting to current time

View file

@ -68,7 +68,7 @@ packages:
path: ".."
relative: true
source: path
version: "2.2.0"
version: "2.2.1"
flutter_lints:
dependency: "direct dev"
description:

View file

@ -21,6 +21,7 @@ class DateTimeInputField extends StatefulWidget {
required this.firstDate,
required this.lastDate,
this.initialDate,
this.initialTime,
this.initialDateTimeRange,
this.initialValue,
this.onChanged,
@ -40,6 +41,7 @@ class DateTimeInputField extends StatefulWidget {
final DateTime? firstDate;
final DateTime? lastDate;
final DateTime? initialDate;
final TimeOfDay? initialTime;
final DateTimeRange? initialDateTimeRange;
final IconData? icon;
final Widget? label;
@ -58,6 +60,7 @@ class _DateInputFieldState extends State<DateTimeInputField> {
late final DateTime lastDate;
late final DateTime initialDate;
late final DateTimeRange initialDateRange;
late final TimeOfDay? initialTime;
String currentValue = '';
@override
@ -82,6 +85,8 @@ class _DateInputFieldState extends State<DateTimeInputField> {
super.initState();
}
TimeOfDay get initialTimeOfDay => widget.initialTime ?? TimeOfDay.now();
@override
Widget build(BuildContext context) {
Future<String> getInputFromUser(FlutterFormDateTimeType inputType,
@ -137,20 +142,20 @@ class _DateInputFieldState extends State<DateTimeInputField> {
break;
case FlutterFormDateTimeType.time:
userInput = await showTimePicker(
initialEntryMode: widget.timePickerEntryMode,
builder: (BuildContext context, Widget? child) {
return MediaQuery(
data: MediaQuery.of(context)
.copyWith(alwaysUse24HourFormat: true),
child: child!,
);
},
context: context,
initialTime: TimeOfDay.now())
.then((value) => value == null
? ''
: MaterialLocalizations.of(context)
.formatTimeOfDay(value, alwaysUse24HourFormat: true));
initialEntryMode: widget.timePickerEntryMode,
builder: (BuildContext context, Widget? child) {
return MediaQuery(
data: MediaQuery.of(context)
.copyWith(alwaysUse24HourFormat: true),
child: child!,
);
},
context: context,
initialTime: initialTimeOfDay,
).then((value) => value == null
? ''
: MaterialLocalizations.of(context)
.formatTimeOfDay(value, alwaysUse24HourFormat: true));
}
return userInput;
}

View file

@ -1,6 +1,6 @@
name: flutter_input_library
description: A new Flutter package project.
version: 2.2.0
version: 2.2.1
repository: https://github.com/Iconica-Development/flutter_input_library
environment: