fix: P0 stabilisation — score modifiers, logout cache clear, provider isolation, mutation error feedback

- scoreCalculator: apply dataQuality/confidence modifiers to finalScore (were computed but hardcoded to 0)
- authService: call queryClient.clear() on logout to prevent cross-session data leakage
- queryClient: extract to src/lib/queryClient.ts singleton so services can access it without circular imports
- matchSyncService: new service layer owns match-generation logic; MockupNeedProvider no longer imports other providers directly
- hooks (11 files): add onError + German toast feedback to every useMutation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Sutter
2026-05-24 00:13:14 +02:00
parent 22c195b4a5
commit efc72b720e
17 changed files with 268 additions and 134 deletions
+13
View File
@@ -1,5 +1,6 @@
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'
import { reminderService } from '../services/reminderService'
import { useToastStore } from '../stores/toastStore'
export function useReminders() {
return useQuery({
@@ -32,6 +33,9 @@ export function useCompleteReminder() {
queryClient.invalidateQueries({ queryKey: ['reminders'] })
queryClient.invalidateQueries({ queryKey: ['reminder-insights'] })
},
onError: () => {
useToastStore.getState().showToast('Erinnerung konnte nicht abgeschlossen werden.', 'error')
},
})
}
@@ -44,6 +48,9 @@ export function useDismissReminder() {
queryClient.invalidateQueries({ queryKey: ['reminders'] })
queryClient.invalidateQueries({ queryKey: ['reminder-insights'] })
},
onError: () => {
useToastStore.getState().showToast('Erinnerung konnte nicht verworfen werden.', 'error')
},
})
}
@@ -56,6 +63,9 @@ export function useSnoozeReminder() {
queryClient.invalidateQueries({ queryKey: ['reminders'] })
queryClient.invalidateQueries({ queryKey: ['reminder-insights'] })
},
onError: () => {
useToastStore.getState().showToast('Erinnerung konnte nicht verschoben werden.', 'error')
},
})
}
@@ -68,5 +78,8 @@ export function useUpdateReminder() {
queryClient.invalidateQueries({ queryKey: ['reminders'] })
queryClient.invalidateQueries({ queryKey: ['reminder', id] })
},
onError: () => {
useToastStore.getState().showToast('Erinnerung konnte nicht aktualisiert werden.', 'error')
},
})
}