Fixed the reminder list

This commit is contained in:
konrad 2019-03-17 19:56:58 +01:00
parent 078c756fb6
commit b6b113c106
Signed by untrusted user: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 49 additions and 25 deletions

View File

@ -31,6 +31,18 @@ class _TaskEditPageState extends State<TaskEditPage> {
@override
Widget build(BuildContext ctx) {
// This builds the initial list of reminder inputs only once.
if (_reminderDates == null) {
_reminderDates = widget.task.reminderDates ?? new List();
_reminderDates?.asMap()?.forEach((i, time) =>
setState(() => _reminderInputs?.add(VikunjaDateTimePicker(
initialValue: time,
label: 'Reminder',
onSaved: (reminder) => _reminderDates[i] = reminder,
))));
}
return Scaffold(
appBar: AppBar(
title: Text('Edit Task'),
@ -146,35 +158,47 @@ class _TaskEditPageState extends State<TaskEditPage> {
),
),
Padding(
padding: EdgeInsets.symmetric(vertical: 10.0),
padding: EdgeInsets.only(top: 10),
child: Column(
children: _reminderInputs ?? _reminderDatesInput(),
children: _reminderInputs,
)),
Padding(
padding: EdgeInsets.symmetric(vertical: 10.0),
child: RaisedButton(onPressed: () {
//_reminderInputs = _reminderInputs ?? new List();
_reminderDates = _reminderDates ?? new List();
_reminderDates.add(
null); // We add a new entry every time we add a new input, to make sure all inputs have a place where they can put their value.
var currentIndex = _reminderDates.length - 1;
padding: EdgeInsets.only(bottom: 10),
child: GestureDetector(
child: Padding(
padding: EdgeInsets.symmetric(vertical: 10),
child: Row(
children: <Widget>[
Padding(
padding:
EdgeInsets.only(right: 15, left: 2),
child: Icon(
Icons.alarm_add,
color: Colors.grey,
)),
Text(
'Add a reminder',
style: TextStyle(
color: Colors.grey,
fontSize: 16,
),
),
],
),
),
onTap: () {
// We add a new entry every time we add a new input, to make sure all inputs have a place where they can put their value.
_reminderDates.add(null);
var currentIndex = _reminderDates.length - 1;
setState(() =>
_reminderInputs.add(VikunjaDateTimePicker(
label: 'Reminder',
onSaved: (reminder) =>
_reminderDates[currentIndex] = reminder,
)));
/*_reminderInputs.add(VikunjaDateTimePicker(
icon: Icon(Icons.add_alarm),
label: 'Add a reminder',
onChanged: (reminder) {
_reminderDates.add(reminder);
//_reminderDatesInput();
}));*/
})),
setState(() =>
_reminderInputs.add(VikunjaDateTimePicker(
label: 'Reminder',
onSaved: (reminder) =>
_reminderDates[currentIndex] =
reminder,
)));
})),
Builder(
builder: (context) => Padding(
padding: EdgeInsets.symmetric(vertical: 10.0),