Files
fintrack/lib/cache-utils.ts

37 lines
1.6 KiB
TypeScript

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"] });
}