import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:sendtrain/daos/session_activities_dao.dart'; import 'package:sendtrain/database/database.dart'; import 'package:sendtrain/extensions/string_extensions.dart'; class SessionViewAchievements extends StatelessWidget { const SessionViewAchievements({super.key, required this.session}); final Session session; List getAchievements(List sessionActivities) { List achievements = []; for (int i = 0; i < sessionActivities.length; i++) { final SessionActivity sessionActivity = sessionActivities[i]; final List? saAchievments = sessionActivity.achievements?.split(','); if (saAchievments != null) { saAchievments.forEach((achievement) => achievements.add(achievement)); } } return achievements; } @override Widget build(BuildContext context) { return FutureBuilder>( future: SessionActivitiesDao(Provider.of(context)) .fromSessionId(session.id), builder: (context, snapshot) { if (snapshot.hasData) { final sessionActivities = snapshot.data!; final achievements = getAchievements(sessionActivities); return Column( children: [ Padding( padding: const EdgeInsets.only(bottom: 10), child: SizedBox( height: 40, child: ListView.builder( scrollDirection: Axis.horizontal, padding: const EdgeInsets.fromLTRB(10, 0, 10, 0), itemCount: achievements.length, itemBuilder: (BuildContext context, int index) { return Padding( padding: const EdgeInsets.only(right: 5), child: ActionChip( visualDensity: VisualDensity.compact, avatar: const Icon(Icons.check_circle_outline), label: Text(maxLines: 1, achievements[index].toTitleCase()), onPressed: () {}, )); }, ))), ], ); } else { return Padding( padding: EdgeInsets.all(15), child: CircularProgressIndicator()); } }); } }