import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:marianum_mobile/data/timetable/timetableProps.dart'; import 'package:marianum_mobile/screen/pages/timetable/weekView.dart'; import 'package:marianum_mobile/widget/errorView.dart'; import 'package:provider/provider.dart'; class Timetable extends StatefulWidget { const Timetable({Key? key}) : super(key: key); @override State createState() => _TimetableState(); } class _TimetableState extends State { bool draggable = true; @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((timeStamp) { Provider.of(context, listen: false).nearest(); }); } @override Widget build(BuildContext context) { TimetableProps timetable = Provider.of(context, listen: false); return Scaffold( appBar: AppBar( title: const Text("Vertretungsplan"), actions: [ IconButton(onPressed: () => timetable.switchWeek(previous: true), icon: const Icon(Icons.chevron_left)), IconButton(onPressed: () => timetable.nearest(), icon: const Icon(Icons.home)), IconButton(onPressed: () => timetable.switchWeek(), icon: const Icon(Icons.chevron_right)) ], ), body: Consumer( builder: (context, value, child) { if(value.hasError) { return ErrorView(icon: Icons.error, text: value.error?.message ?? "Unbekannt?"); } if(value.primaryLoading()) { log("LOADING"); return const Center(child: CircularProgressIndicator()); } return WeekView(value); }, ), ); } }