From 0aabe4a0734b90dd15395fbd0d56be3a09a317d9 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 24 Jan 2026 20:46:25 +0000 Subject: [PATCH] Fix dashboard chart not updating after sync The WeeklyActivityChart uses useDailyStats hook with query key ['dailyStats', ...] which was not being invalidated when workouts were synced, imported, or deleted. Added dailyStats query invalidation to useHevySync, useDeleteWorkouts, and useEnhancedImport hooks. --- src/db/hooks/useEnhancedImport.ts | 1 + src/db/hooks/useHevySync.ts | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/db/hooks/useEnhancedImport.ts b/src/db/hooks/useEnhancedImport.ts index 95f089c..8a57fce 100644 --- a/src/db/hooks/useEnhancedImport.ts +++ b/src/db/hooks/useEnhancedImport.ts @@ -94,6 +94,7 @@ export function useEnhancedImport(): { // Invalidate all relevant queries void queryClient.invalidateQueries({ queryKey: ['workouts'] }); void queryClient.invalidateQueries({ queryKey: ['unmappedExercises'] }); + void queryClient.invalidateQueries({ queryKey: ['dailyStats'] }); return { imported, diff --git a/src/db/hooks/useHevySync.ts b/src/db/hooks/useHevySync.ts index 6648430..7695d04 100644 --- a/src/db/hooks/useHevySync.ts +++ b/src/db/hooks/useHevySync.ts @@ -28,6 +28,7 @@ const CANONICAL_IDS = getCanonicalExerciseIds(); const WORKOUTS_KEY = ['workouts']; const UNMAPPED_EXERCISES_KEY = ['unmappedExercises']; const PROFILES_KEY = ['profiles']; +const DAILY_STATS_KEY = ['dailyStats']; /** * Result of a Hevy sync operation @@ -187,6 +188,7 @@ export function useHevySync(): { void queryClient.invalidateQueries({ queryKey: WORKOUTS_KEY }); void queryClient.invalidateQueries({ queryKey: PROFILES_KEY }); void queryClient.invalidateQueries({ queryKey: UNMAPPED_EXERCISES_KEY }); + void queryClient.invalidateQueries({ queryKey: DAILY_STATS_KEY }); }, }); @@ -219,6 +221,7 @@ export function useDeleteWorkouts(): { }, onSuccess: () => { void queryClient.invalidateQueries({ queryKey: WORKOUTS_KEY }); + void queryClient.invalidateQueries({ queryKey: DAILY_STATS_KEY }); }, });