Files
HoruxDespachosNuevo/apps/web/lib/hooks/use-bancos.ts

40 lines
1.3 KiB
TypeScript

import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import * as bancosApi from '@/lib/api/bancos';
import { useTenantViewStore } from '@/stores/tenant-view-store';
import { useContribuyenteStore } from '@/stores/contribuyente-store';
function useBancosKey() {
const { viewingTenantId } = useTenantViewStore();
const { selectedContribuyenteId } = useContribuyenteStore();
const tenantKey = viewingTenantId || 'own';
return ['bancos', tenantKey, selectedContribuyenteId] as const;
}
export function useBancos() {
const key = useBancosKey();
const { selectedContribuyenteId } = useContribuyenteStore();
return useQuery({
queryKey: key,
queryFn: () => bancosApi.getBancos(selectedContribuyenteId),
});
}
export function useCreateBanco() {
const qc = useQueryClient();
const { selectedContribuyenteId } = useContribuyenteStore();
return useMutation({
mutationFn: (data: { banco: string; terminacionCuenta: string }) =>
bancosApi.createBanco({ ...data, contribuyenteId: selectedContribuyenteId || undefined }),
onSuccess: () => qc.invalidateQueries({ queryKey: ['bancos'] }),
});
}
export function useDeleteBanco() {
const qc = useQueryClient();
const key = useBancosKey();
return useMutation({
mutationFn: bancosApi.deleteBanco,
onSuccess: () => qc.invalidateQueries({ queryKey: key }),
});
}