diff --git a/PlantGuide/Presentation/Scenes/PlantDetail/PlantDetailViewModel.swift b/PlantGuide/Presentation/Scenes/PlantDetail/PlantDetailViewModel.swift index f01ea9a..64ac68c 100644 --- a/PlantGuide/Presentation/Scenes/PlantDetail/PlantDetailViewModel.swift +++ b/PlantGuide/Presentation/Scenes/PlantDetail/PlantDetailViewModel.swift @@ -285,8 +285,16 @@ final class PlantDetailViewModel { // Find and update the task if let index = schedule.tasks.firstIndex(where: { $0.id == task.id }) { - schedule.tasks[index] = task.completed() + let completedTask = task.completed() + schedule.tasks[index] = completedTask careSchedule = schedule + + // Persist the change to the repository + do { + try await careScheduleRepository.updateTask(completedTask) + } catch { + print("Failed to persist task completion: \(error)") + } } } diff --git a/PlantGuide/Presentation/Scenes/TodayView/TodayView.swift b/PlantGuide/Presentation/Scenes/TodayView/TodayView.swift index da7aa88..00086e3 100644 --- a/PlantGuide/Presentation/Scenes/TodayView/TodayView.swift +++ b/PlantGuide/Presentation/Scenes/TodayView/TodayView.swift @@ -77,6 +77,9 @@ struct TodayView: View { .task { await viewModel.loadTasks() } + .onAppear { + Task { await viewModel.loadTasks() } + } .refreshable { await viewModel.loadTasks() }