buildStreakCard method

Widget buildStreakCard(
  1. String email,
  2. bool isDark,
  3. 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,
      );
    },
  );
}