loadStreakData method

Future<void> loadStreakData()

Loads current streak data and updates observable properties.

Implementation

Future<void> loadStreakData() async {
  isLoading.value = true;
  isError.value = false;
  final userEmail = FirebaseAuth.instance.currentUser?.email;
  if (userEmail == null) {
    isError.value = true;
    isLoading.value = false;
    return;
  }

  try {
    await _statisticsController.setStreakInvalid(userEmail);
    hasStreak.value = await _statisticsController.isStreakActive(userEmail);

    final results = await Future.wait([
      _statisticsController.getDoneExercisesInSeconds(userEmail),
      _statisticsController.getStreakSteps(userEmail),
    ]);

    doneSeconds.value = results[0];
    streakSteps.value = results[1];
  } catch (_) {
    isError.value = true;
  } finally {
    isLoading.value = false;
  }
}