refactor: enhance cache invalidation logic across banking API routes and components for improved data consistency and performance
This commit is contained in:
36
lib/cache-utils.ts
Normal file
36
lib/cache-utils.ts
Normal 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"] });
|
||||
}
|
||||
Reference in New Issue
Block a user