summaryrefslogtreecommitdiff
path: root/lib/pages
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@amftech.nl>2022-08-16 20:54:02 +0200
committerAldrik Ramaekers <aldrik@amftech.nl>2022-08-16 20:54:02 +0200
commit72aa769bc32bb920bd255e68d6ad508e8543a398 (patch)
tree375f33dea71fe0c31a6827797d9fe62df05a5f72 /lib/pages
parent9144664c98824924e3d7668557a4455693bcf7f6 (diff)
poop
Diffstat (limited to 'lib/pages')
-rw-r--r--lib/pages/add_shift_page.dart23
-rw-r--r--lib/pages/agenda_page.dart21
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,