refactor: enhance cache invalidation logic across banking API routes and components for improved data consistency and performance

This commit is contained in:
Julien Froidefond
2025-12-08 14:04:12 +01:00
parent 53bae084c4
commit 8d947ad70f
14 changed files with 412 additions and 200 deletions

36
lib/cache-utils.ts Normal file
View File

@@ -0,0 +1,36 @@
import { QueryClient } from "@tanstack/react-query";
/**
* Invalide toutes les queries liées aux transactions
* Utilisé après toute mutation de transaction (création, modification, suppression)
*/
export function invalidateAllTransactionQueries(queryClient: QueryClient) {
// Invalider toutes les queries de transactions (tous les paramètres)
queryClient.invalidateQueries({ queryKey: ["transactions"] });
// Invalider les queries liées qui peuvent être affectées
queryClient.invalidateQueries({ queryKey: ["banking-metadata"] });
queryClient.invalidateQueries({ queryKey: ["category-stats"] });
queryClient.invalidateQueries({ queryKey: ["accounts-with-stats"] });
queryClient.invalidateQueries({ queryKey: ["duplicate-ids"] });
}
/**
* Invalide toutes les queries liées aux catégories
* Utilisé après toute mutation de catégorie (création, modification, suppression)
*/
export function invalidateAllCategoryQueries(queryClient: QueryClient) {
queryClient.invalidateQueries({ queryKey: ["banking-metadata"] });
queryClient.invalidateQueries({ queryKey: ["category-stats"] });
queryClient.invalidateQueries({ queryKey: ["transactions"] });
}
/**
* Invalide toutes les queries liées aux comptes
* Utilisé après toute mutation de compte ou dossier (création, modification, suppression)
*/
export function invalidateAllAccountQueries(queryClient: QueryClient) {
queryClient.invalidateQueries({ queryKey: ["banking-metadata"] });
queryClient.invalidateQueries({ queryKey: ["accounts-with-stats"] });
queryClient.invalidateQueries({ queryKey: ["transactions"] });
}