buildLongestStreakCard method

Widget buildLongestStreakCard(
  1. String email,
  2. bool isDark,
  3. BuildContext context
)

Longest Streak Card

Implementation

Widget buildLongestStreakCard(String email, bool isDark, BuildContext context) {
  final statisticsController = StatisticsController();
  final localizations = AppLocalizations.of(context)!;

  return FutureBuilder<Map<String, dynamic>?>(
    future: statisticsController.getLongestStreak(email, context),
    builder: (context, snapshot) {
      if (snapshot.connectionState == ConnectionState.waiting) {
        return _buildLoadingCard(icon: Icons.auto_graph_outlined);
      }

      if (snapshot.hasError) {
        return _buildErrorCard(context, isDark);
      }

      if (snapshot.hasData && snapshot.data!.isNotEmpty) {
        final data = snapshot.data!;
        return _styledTextBlockCard(
          icon: Icons.auto_graph_outlined,
          iconColor: tPrimaryColor,
          title: localizations.tLongestStreak,
          isDark: isDark,
          lines: [
            '${localizations.tStartDate}${data['startDate']}',
            '${localizations.tEndDate}${data['endDate']}',
            '${localizations.tDuration}${data['lengthInDays']}${localizations.tDays}',
          ],
        );
      }

      return _styledTextBlockCard(
        icon: Icons.auto_graph_outlined,
        iconColor: Colors.grey,
        title: localizations.tLongestStreak,
        lines: [localizations.tNoStreak],
        isDark: isDark,
      );
    },
  );
}