import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:sendtrain/daos/activities_dao.dart'; import 'package:sendtrain/database/database.dart'; import 'package:sendtrain/widgets/activities/activity_card.dart'; import 'package:sendtrain/widgets/generic/elements/generic_progress_indicator.dart'; class SessionViewActivities extends StatefulWidget { const SessionViewActivities({super.key, required this.session}); final Session session; @override State createState() => _SessionViewActivitiesState(); } class _SessionViewActivitiesState extends State { @override Widget build(BuildContext context) { return StreamBuilder>( stream: ActivitiesDao(Provider.of(context)) .watchSessionActivities(widget.session.id), builder: (context, snapshot) { if (snapshot.hasData) { final activities = snapshot.data!; if (activities.isNotEmpty) { return Expanded( child: ListView.builder( // shrinkWrap: true, padding: const EdgeInsets.fromLTRB(10, 0, 10, 0), itemCount: activities.length, itemBuilder: (BuildContext context, int index) { return ActivityCard(activity: activities[index]); }, )); } else { return Expanded( child: ListView( padding: const EdgeInsets.fromLTRB(10, 0, 10, 0), children: [ Card.outlined( child: ListTile( onTap: () {}, autofocus: true, leading: Icon(Icons.add_box_rounded), title: Text('Add an Activity!'), subtitle: Text( 'Here you can associate one or more activities that you can follow during your session.'), )) ])); } } else { return GenericProgressIndicator(); } }); } }