buildStreakCard method
- String email,
- bool isDark,
- BuildContext context
Consolidated Streak Card with better error handling
Implementation
Widget buildStreakCard(String email, bool isDark, BuildContext context) {
final statisticsController = StatisticsController();
final localizations = AppLocalizations.of(context)!;
return FutureBuilder<List<dynamic>>(
future: Future.wait([
statisticsController.getStreakSteps(email),
statisticsController.getDoneExercisesInSeconds(email),
]),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return _buildLoadingCard(icon: Icons.local_fire_department_outlined);
}
if (snapshot.hasError || !snapshot.hasData) {
return _buildErrorCard(context, isDark);
}
final streakSteps = snapshot.data![0] as int;
final secondsToday = snapshot.data![1] as int;
return _buildStreakCardContent(
streakSteps: streakSteps,
secondsToday: secondsToday,
isDark: isDark,
localizations: localizations,
);
},
);
}