summaryrefslogtreecommitdiff
path: root/lib/pages/add_shift_page.dart
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@amftech.nl>2022-08-16 11:19:49 +0200
committerAldrik Ramaekers <aldrik@amftech.nl>2022-08-16 11:19:49 +0200
commit00bf8823311c067f5b0e9a785a5048e6bd8ad122 (patch)
treeba2d727345038b7da2ea628e5e865572033df8e7 /lib/pages/add_shift_page.dart
ok
Diffstat (limited to 'lib/pages/add_shift_page.dart')
-rw-r--r--lib/pages/add_shift_page.dart142
1 files changed, 142 insertions, 0 deletions
diff --git a/lib/pages/add_shift_page.dart b/lib/pages/add_shift_page.dart
new file mode 100644
index 0000000..64b6142
--- /dev/null
+++ b/lib/pages/add_shift_page.dart
@@ -0,0 +1,142 @@
+import 'package:flutter/material.dart';
+import 'package:training_planner/pages/agenda_page.dart';
+import 'package:training_planner/pages/home_page.dart';
+import 'package:training_planner/shift.dart';
+import 'package:training_planner/main.dart';
+import 'package:training_planner/style/style.dart';
+
+class AddShiftPage extends StatefulWidget {
+ final int pageNr;
+ final int pageIndex;
+ final DateTime mondayOfWeek;
+ @override
+ _AddShiftPageState createState() => _AddShiftPageState();
+
+ const AddShiftPage({
+ Key? key,
+ required this.pageNr,
+ required this.pageIndex,
+ required this.mondayOfWeek,
+ }) : super(key: key);
+}
+
+class _AddShiftPageState extends State<AddShiftPage> {
+ @override
+ initState() {
+ super.initState();
+ }
+
+ String dropdownValue = 'Maandag';
+ List<bool> isSelected = [false, true, false];
+
+ void addShift() {
+ DateTime startDate = widget.mondayOfWeek;
+ switch (dropdownValue) {
+ case 'Dinsdag':
+ startDate = startDate.add(Duration(days: 1));
+ break;
+ case 'Woensdag':
+ startDate = startDate.add(Duration(days: 2));
+ break;
+ case 'Donderdag':
+ startDate = startDate.add(Duration(days: 3));
+ break;
+ case 'Vrijdag':
+ startDate = startDate.add(Duration(days: 4));
+ break;
+ case 'Zaterdag':
+ startDate = startDate.add(Duration(days: 5));
+ break;
+ case 'Zondag':
+ startDate = startDate.add(Duration(days: 6));
+ break;
+ }
+
+ shiftProvider.addShift(Shift(
+ start: startDate,
+ type: isSelected[0]
+ ? ShiftType.Dagrit
+ : isSelected[1]
+ ? ShiftType.Avondrit
+ : ShiftType.Terugscannen));
+
+ Navigator.pop(context, true);
+
+ // Previous page will not refresh without this.
+ Navigator.pushAndRemoveUntil(
+ context,
+ MaterialPageRoute(builder: (context) => HomePage()),
+ (Route<dynamic> route) => false,
+ );
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return Scaffold(
+ appBar: AppBar(
+ title: Text('Toevoegen aan planning #' + widget.pageNr.toString()),
+ backgroundColor: Style.background,
+ foregroundColor: Style.titleColor,
+ ),
+ body: Center(
+ child: Column(
+ children: [
+ Padding(padding: const EdgeInsets.all(20)),
+ Container(
+ width: 200,
+ child: DropdownButton<String>(
+ value: dropdownValue,
+ icon: const Icon(Icons.arrow_downward),
+ elevation: 16,
+ style: const TextStyle(color: Colors.black),
+ underline: Container(
+ height: 2,
+ color: Colors.black,
+ ),
+ onChanged: (String? newValue) {
+ setState(() {
+ dropdownValue = newValue!;
+ });
+ },
+ items: <String>[
+ 'Maandag',
+ 'Dinsdag',
+ 'Woensdag',
+ 'Donderdag',
+ 'Vrijdag',
+ 'Zaterdag',
+ 'Zondag'
+ ].map<DropdownMenuItem<String>>((String value) {
+ return DropdownMenuItem<String>(
+ value: value,
+ child: Text(value),
+ );
+ }).toList(),
+ ),
+ ),
+ Padding(padding: const EdgeInsets.all(20)),
+ ToggleButtons(
+ children: <Widget>[
+ Padding(
+ padding: const EdgeInsets.all(15), child: Text('Dagrit')),
+ Padding(
+ padding: const EdgeInsets.all(15), child: Text('Avondrit')),
+ Padding(
+ padding: const EdgeInsets.all(15),
+ child: Text('Terugscan')),
+ ],
+ onPressed: (int index) {
+ setState(() {
+ isSelected[index] = !isSelected[index];
+ });
+ },
+ isSelected: isSelected,
+ ),
+ Padding(
+ padding: const EdgeInsets.all(20),
+ ),
+ TextButton(onPressed: () => {addShift()}, child: Text('Toevoegen')),
+ ],
+ )));
+ }
+}