summaryrefslogtreecommitdiff
path: root/lib/widgets/agenda_week.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/widgets/agenda_week.dart
ok
Diffstat (limited to 'lib/widgets/agenda_week.dart')
-rw-r--r--lib/widgets/agenda_week.dart100
1 files changed, 100 insertions, 0 deletions
diff --git a/lib/widgets/agenda_week.dart b/lib/widgets/agenda_week.dart
new file mode 100644
index 0000000..4a654ce
--- /dev/null
+++ b/lib/widgets/agenda_week.dart
@@ -0,0 +1,100 @@
+import 'package:flutter/material.dart';
+import 'package:training_planner/main.dart';
+import 'package:training_planner/shift.dart';
+import 'package:training_planner/style/style.dart';
+import 'package:training_planner/utils/date.dart';
+import 'package:training_planner/widgets/agenda_week_item.dart';
+import 'package:training_planner/widgets/agenda_week_title.dart';
+
+class AgendaWeek extends StatefulWidget {
+ final int weekNr;
+ final DateTime mondayOfWeek;
+ final bool isCurrentWeek;
+
+ @override
+ _AgendaWeekState createState() => _AgendaWeekState();
+
+ const AgendaWeek({
+ Key? key,
+ required this.weekNr,
+ required this.mondayOfWeek,
+ required this.isCurrentWeek,
+ }) : super(key: key);
+}
+
+class _AgendaWeekState extends State<AgendaWeek> {
+ List<Widget> weekItems = [];
+
+ @override
+ void initState() {
+ super.initState();
+
+ shiftProvider
+ .getShiftsForWeek(this.widget.mondayOfWeek)
+ .then((value) => setState(() {
+ weekItems = [
+ AgendaWeekTitle(
+ weekNr: this.widget.weekNr,
+ mondayOfWeek: this.widget.mondayOfWeek,
+ isCurrentWeek: this.widget.isCurrentWeek),
+ Padding(
+ padding: const EdgeInsets.all(10),
+ )
+ ];
+
+ for (var item in value) {
+ weekItems.add(new AgendaWeekItem(shift: item));
+ }
+
+ weekItems.add(Padding(
+ padding: const EdgeInsets.all(50),
+ ));
+ }));
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return ShaderMask(
+ shaderCallback: (Rect rect) {
+ return LinearGradient(
+ begin: Alignment.topCenter,
+ end: Alignment.bottomCenter,
+ colors: [
+ Style.background,
+ Colors.transparent,
+ Colors.transparent,
+ Style.background
+ ],
+ stops: [
+ 0.0,
+ 0.05,
+ 0.95,
+ 1.0
+ ], // 10% purple, 80% transparent, 10% purple
+ ).createShader(rect);
+ },
+ blendMode: BlendMode.dstOut,
+ child: SafeArea(
+ child: CustomScrollView(
+ physics: null,
+ slivers: [
+ SliverPadding(padding: EdgeInsets.only(top: 20)),
+ SliverList(
+ delegate: SliverChildBuilderDelegate(
+ (BuildContext context, int index) {
+ return weekItems[index];
+ },
+ childCount: weekItems.length,
+ )),
+
+ // Rest day
+ //if (day == null)
+ // createRestDayPage(list)
+
+ SliverPadding(padding: EdgeInsets.only(top: 20)),
+ ],
+ ),
+ ),
+ );
+ }
+}