From 72aa769bc32bb920bd255e68d6ad508e8543a398 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Tue, 16 Aug 2022 20:54:02 +0200 Subject: poop --- lib/pages/add_shift_page.dart | 23 ++++++++++------------- lib/pages/agenda_page.dart | 21 +++++++++++---------- 2 files changed, 21 insertions(+), 23 deletions(-) (limited to 'lib/pages') 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 { String dropdownValue = 'Maandag'; List isSelected = [false, true, false]; - void addShift() { + Future addShift() async { DateTime startDate = widget.mondayOfWeek; switch (dropdownValue) { case 'Maandag': @@ -74,17 +77,9 @@ class _AddShiftPageState extends State { 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 route) => false, - ); + await shiftProvider.addShift(Shift(start: startDate, type: type)); + widget.updateParent(); + Navigator.pop(context); } @override @@ -152,7 +147,9 @@ class _AddShiftPageState extends State { 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 { int weekToStartAt = 0; - List weeks = []; List weekNrs = []; List dateTimes = []; int currentSelectedPageIndex = 0; @@ -31,15 +31,14 @@ class _AgendaPageState extends State { super.initState(); weekToStartAt = widget.agendaWeekNr; - weeks = getWeeks(); - + getWeeks(); currentSelectedPageIndex = weekToStartAt; currentSelectedPageNr = weekNrs[weekToStartAt]; currentSelectedWeek = dateTimes[weekToStartAt]; } - List getWeeks() { - List result = []; + List getWeeks() { + List result = []; List weekNrs = []; DateTime startDate = DateUtilities.DateUtils.firstDayOfWeek(DateTime(2020, 1, 1)); @@ -77,6 +76,8 @@ class _AgendaPageState extends State { @override Widget build(BuildContext context) { + List weeks = getWeeks(); + return Scaffold( body: Padding( padding: const EdgeInsets.all(0), @@ -93,7 +94,7 @@ class _AgendaPageState extends State { enableInfiniteScroll: false, initialPage: weekToStartAt, // Week nr ), - items: getWeeks(), + items: weeks, ), ), floatingActionButton: FloatingActionButton( @@ -102,10 +103,10 @@ class _AgendaPageState extends State { context, MaterialPageRoute( builder: (context) => AddShiftPage( - pageNr: currentSelectedPageNr, - pageIndex: currentSelectedPageIndex, - mondayOfWeek: currentSelectedWeek, - )), + pageNr: currentSelectedPageNr, + pageIndex: currentSelectedPageIndex, + mondayOfWeek: currentSelectedWeek, + updateParent: weeks[currentSelectedPageIndex].updateFunc!)), ); }, backgroundColor: Style.titleColor, -- cgit v1.2.3-70-g09d2