diff options
Diffstat (limited to 'lib/pages')
| -rw-r--r-- | lib/pages/add_shift_page.dart | 23 | ||||
| -rw-r--r-- | lib/pages/agenda_page.dart | 21 |
2 files changed, 21 insertions, 23 deletions
diff --git a/lib/pages/add_shift_page.dart b/lib/pages/add_shift_page.dart index d81ae3e..21bdbf0 100644 --- a/lib/pages/add_shift_page.dart +++ b/lib/pages/add_shift_page.dart @@ -9,6 +9,8 @@ class AddShiftPage extends StatefulWidget { final int pageNr; final int pageIndex; final DateTime mondayOfWeek; + final Function updateParent; + @override _AddShiftPageState createState() => _AddShiftPageState(); @@ -17,6 +19,7 @@ class AddShiftPage extends StatefulWidget { required this.pageNr, required this.pageIndex, required this.mondayOfWeek, + required this.updateParent, }) : super(key: key); } @@ -29,7 +32,7 @@ class _AddShiftPageState extends State<AddShiftPage> { String dropdownValue = 'Maandag'; List<bool> isSelected = [false, true, false]; - void addShift() { + Future<void> addShift() async { DateTime startDate = widget.mondayOfWeek; switch (dropdownValue) { case 'Maandag': @@ -74,17 +77,9 @@ class _AddShiftPageState extends State<AddShiftPage> { break; } - shiftProvider.addShift(Shift(start: startDate, type: type)); - - Navigator.pop(context, true); - - // Previous page will not refresh without this. - Navigator.pushAndRemoveUntil( - context, - MaterialPageRoute( - builder: (context) => HomePage(agendaWeekNr: widget.pageIndex)), - (Route<dynamic> route) => false, - ); + await shiftProvider.addShift(Shift(start: startDate, type: type)); + widget.updateParent(); + Navigator.pop(context); } @override @@ -152,7 +147,9 @@ class _AddShiftPageState extends State<AddShiftPage> { Padding( padding: const EdgeInsets.all(20), ), - TextButton(onPressed: () => {addShift()}, child: Text('Toevoegen')), + TextButton( + onPressed: () async => {await addShift()}, + child: Text('Toevoegen')), ], ))); } diff --git a/lib/pages/agenda_page.dart b/lib/pages/agenda_page.dart index a273cd0..f052434 100644 --- a/lib/pages/agenda_page.dart +++ b/lib/pages/agenda_page.dart @@ -1,6 +1,7 @@ import 'package:carousel_slider/carousel_slider.dart'; import 'package:flutter/material.dart'; import 'package:in_date_utils/in_date_utils.dart' as DateUtilities; +import 'package:training_planner/main.dart'; import 'package:training_planner/pages/add_shift_page.dart'; import 'package:training_planner/shift.dart'; import 'package:training_planner/style/style.dart'; @@ -19,7 +20,6 @@ class AgendaPage extends StatefulWidget { class _AgendaPageState extends State<AgendaPage> { int weekToStartAt = 0; - List<Widget> weeks = []; List<int> weekNrs = []; List<DateTime> dateTimes = []; int currentSelectedPageIndex = 0; @@ -31,15 +31,14 @@ class _AgendaPageState extends State<AgendaPage> { super.initState(); weekToStartAt = widget.agendaWeekNr; - weeks = getWeeks(); - + getWeeks(); currentSelectedPageIndex = weekToStartAt; currentSelectedPageNr = weekNrs[weekToStartAt]; currentSelectedWeek = dateTimes[weekToStartAt]; } - List<Widget> getWeeks() { - List<Widget> result = []; + List<AgendaWeek> getWeeks() { + List<AgendaWeek> result = []; List<int> weekNrs = []; DateTime startDate = DateUtilities.DateUtils.firstDayOfWeek(DateTime(2020, 1, 1)); @@ -77,6 +76,8 @@ class _AgendaPageState extends State<AgendaPage> { @override Widget build(BuildContext context) { + List<AgendaWeek> weeks = getWeeks(); + return Scaffold( body: Padding( padding: const EdgeInsets.all(0), @@ -93,7 +94,7 @@ class _AgendaPageState extends State<AgendaPage> { enableInfiniteScroll: false, initialPage: weekToStartAt, // Week nr ), - items: getWeeks(), + items: weeks, ), ), floatingActionButton: FloatingActionButton( @@ -102,10 +103,10 @@ class _AgendaPageState extends State<AgendaPage> { context, MaterialPageRoute( builder: (context) => AddShiftPage( - pageNr: currentSelectedPageNr, - pageIndex: currentSelectedPageIndex, - mondayOfWeek: currentSelectedWeek, - )), + pageNr: currentSelectedPageNr, + pageIndex: currentSelectedPageIndex, + mondayOfWeek: currentSelectedWeek, + updateParent: weeks[currentSelectedPageIndex].updateFunc!)), ); }, backgroundColor: Style.titleColor, |
