session and activity delete

This commit is contained in:
Joshua Burman
2024-12-24 22:38:25 -05:00
parent 3c2f2e9bae
commit 029f037f90
15 changed files with 4785 additions and 194 deletions

View File

@ -1,12 +1,25 @@
// import 'package:drift/drift.dart' hide Column;
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:sendtrain/daos/sessions_dao.dart';
import 'package:sendtrain/database/database.dart';
import '../widgets/session_card.dart';
import 'package:collection/collection.dart';
class SessionsScreen extends StatelessWidget {
const SessionsScreen({super.key});
Widget getSessionCard(session) {
if (session != null) {
return SessionCard(session: session);
} else {
return Padding(
padding: EdgeInsets.all(15),
child: Icon(Icons.do_not_disturb_alt_outlined)
);
}
}
@override
Widget build(BuildContext context) {
return FutureBuilder<List<Session>>(
@ -17,15 +30,15 @@ class SessionsScreen extends StatelessWidget {
final pending = sessions.where((session) =>
session.status == SessionStatus.completed ||
session.status == SessionStatus.missed);
final upcoming = sessions.firstWhere(
final upcoming = sessions.firstWhereOrNull(
(session) => session.status == SessionStatus.pending);
final current = sessions.firstWhere(
final current = sessions.firstWhereOrNull(
(session) => session.status == SessionStatus.started);
List<Widget> previousSessions = List.generate(pending.length,
(i) => SessionCard(type: 1, session: pending.elementAt(i)));
Widget upcomingSession = SessionCard(session: upcoming);
Widget currentSession = SessionCard(session: current);
Widget upcomingSession = getSessionCard(upcoming);
Widget currentSession = getSessionCard(current);
return Column(
crossAxisAlignment: CrossAxisAlignment.start,