import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:sendtrain/daos/session_activities_dao.dart'; import 'package:sendtrain/daos/sessions_dao.dart'; import 'package:sendtrain/database/database.dart'; import 'package:sendtrain/extensions/string_extensions.dart'; import 'package:sendtrain/helpers/widget_helpers.dart'; import 'package:sendtrain/widgets/achievements/achievement_editor.dart'; import 'package:sendtrain/widgets/builders/dialogs.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; // } void resetState() { // setState(() {}); } @override Widget build(BuildContext context) { Widget content; if (session.achievements == null) { content = Padding( padding: const EdgeInsets.only(left: 10, right: 5), child: ActionChip( visualDensity: VisualDensity.compact, avatar: const Icon(Icons.check_circle_outline), label: Text(maxLines: 1, 'Add Achievements!'), onPressed: () { showEditorSheet(context, AchievementEditor(callback: resetState)); }, )); } else { final achievements = json.decode(session.achievements!); content = 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].toString().toTitleCase()), onPressed: () { showUpdateDialog( 'Achievement Removal', 'Would you like to remove this achievement?', context, SessionsDao( Provider.of(context, listen: false)), session); })); }, ); } return Column( children: [ Padding( padding: const EdgeInsets.only(bottom: 10), child: SizedBox(height: 40, child: content)), ], ); // return StreamBuilder>( // stream: SessionActivitiesDao(Provider.of(context)) // .fromSessionId(session.id).asStream(), // builder: (context, snapshot) { // if (snapshot.hasData) { // final sessionActivities = snapshot.data!; // final achievements = getAchievements(sessionActivities); // Widget content; // if (achievements.isEmpty) { // content = Padding( // padding: const EdgeInsets.only(left: 10, right: 5), // child: ActionChip( // visualDensity: VisualDensity.compact, // avatar: const Icon(Icons.check_circle_outline), // label: Text(maxLines: 1, 'Add Achievements!'), // onPressed: () { // showEditorSheet(context, AchievementEditor(achievements: achievements, callback: resetState)); // }, // )); // } else { // content = 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: () { // // remove achievements // }, // )); // }, // ); // } // return Column( // children: [ // Padding( // padding: const EdgeInsets.only(bottom: 10), // child: SizedBox(height: 40, child: content)), // ], // ); // } else { // return Padding( // padding: EdgeInsets.all(15), // child: CircularProgressIndicator()); // } // }); } }