Files
Charon/frontend/src/hooks/useDomains.ts
2026-01-26 19:22:05 +00:00

35 lines
832 B
TypeScript

import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'
import * as api from '../api/domains'
export function useDomains() {
const queryClient = useQueryClient()
const { data: domains = [], isLoading, isFetching, error } = useQuery({
queryKey: ['domains'],
queryFn: api.getDomains,
})
const createMutation = useMutation({
mutationFn: api.createDomain,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['domains'] })
},
})
const deleteMutation = useMutation({
mutationFn: api.deleteDomain,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['domains'] })
},
})
return {
domains,
isLoading,
isFetching,
error,
createDomain: createMutation.mutateAsync,
deleteDomain: deleteMutation.mutateAsync,
}
}