diff --git a/lib/presentation/providers/visit_provider.dart b/lib/presentation/providers/visit_provider.dart index b413b0b..d1e8192 100644 --- a/lib/presentation/providers/visit_provider.dart +++ b/lib/presentation/providers/visit_provider.dart @@ -31,6 +31,9 @@ final monthlyVisitStatsProvider = ref, params, ) async { + // visitRecordsProvider를 watch하여 방문 기록 변경 시 자동 갱신 + await ref.watch(visitRecordsProvider.future); + final repository = ref.watch(visitRepositoryProvider); return repository.getMonthlyVisitStats(params.year, params.month); }); @@ -41,13 +44,19 @@ final monthlyCategoryVisitStatsProvider = ref, params, ) async { - final repository = ref.watch(visitRepositoryProvider); + // visitRecordsProvider를 watch하여 방문 기록 변경 시 자동 갱신 + final allRecords = await ref.watch(visitRecordsProvider.future); final restaurants = await ref.watch(restaurantListProvider.future); - final records = await repository.getVisitRecordsByDateRange( - startDate: DateTime(params.year, params.month, 1), - endDate: DateTime(params.year, params.month + 1, 0), - ); + // 해당 월의 기록만 필터링 + final startDate = DateTime(params.year, params.month, 1); + final endDate = DateTime(params.year, params.month + 1, 0); + final records = allRecords.where((record) { + return record.visitDate.isAfter( + startDate.subtract(const Duration(days: 1)), + ) && + record.visitDate.isBefore(endDate.add(const Duration(days: 1))); + }).toList(); final categoryCount = {}; for (final record in records) {