created alram form widget placeholders

This commit is contained in:
marco committed 2026-07-17 16:58:05 +02:00
1 parent c7ff39e55c
commit 3ceb0896a4
6 files changed
+218 -41

No files matched your search

+24 -1
View File
@@ -12,6 +12,7 @@ class TimeSelector extends StatefulWidget {
required this.dueDateController,
required this.dueTimeController,
this.formKey,
this.onChanged,
});
final DateTime? initialDueDateTime;
@@ -19,6 +20,7 @@ class TimeSelector extends StatefulWidget {
final FocusNode? nextFocusNode;
final TextEditingController dueDateController;
final TextEditingController dueTimeController;
final void Function(DateTime dateTime)? onChanged;
@override
State<TimeSelector> createState() => _TimeSelectorState();
@@ -48,7 +50,18 @@ class _TimeSelectorState extends State<TimeSelector> {
child: TextFormField(
focusNode: dueDateFocusNode,
controller: widget.dueDateController,
onChanged: maybeEnableDueTime,
onChanged: (value) {
maybeEnableDueTime(value);
if (dateTimeValidator(value) == null &&
widget.onChanged != null) {
final dateTime = DateTime.tryParse(
'$value ${widget.dueTimeController.text}'.trim(),
);
if (dateTime != null) {
widget.onChanged!(dateTime);
}
}
},
onFieldSubmitted: (_) {
isDueTimeEnabled
? dueDateFocusNode.nextFocus()
@@ -85,6 +98,16 @@ class _TimeSelectorState extends State<TimeSelector> {
onFieldSubmitted: (_) => dueTimeFocusNode.nextFocus(),
controller: widget.dueTimeController,
enabled: isDueTimeEnabled,
onChanged: (value) {
if (timeValidator(value) == null && widget.onChanged != null) {
final dateTime = DateTime.tryParse(
'${widget.dueDateController.text} $value'.trim(),
);
if (dateTime != null) {
widget.onChanged!(dateTime);
}
}
},
decoration: InputDecoration(
label: Text('Due Time'),
suffixIcon: IconButton(