chore: clean .gitignore cache
This commit is contained in:
@@ -1,117 +0,0 @@
|
||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
||||
import {
|
||||
getDNSProviders,
|
||||
getDNSProvider,
|
||||
getDNSProviderTypes,
|
||||
createDNSProvider,
|
||||
updateDNSProvider,
|
||||
deleteDNSProvider,
|
||||
testDNSProvider,
|
||||
testDNSProviderCredentials,
|
||||
type DNSProvider,
|
||||
type DNSProviderRequest,
|
||||
type DNSProviderTypeInfo,
|
||||
type DNSProviderField,
|
||||
type DNSTestResult,
|
||||
} from '../api/dnsProviders'
|
||||
|
||||
/** Query key factory for DNS providers */
|
||||
const queryKeys = {
|
||||
all: ['dns-providers'] as const,
|
||||
lists: () => [...queryKeys.all, 'list'] as const,
|
||||
list: () => [...queryKeys.lists()] as const,
|
||||
details: () => [...queryKeys.all, 'detail'] as const,
|
||||
detail: (id: number) => [...queryKeys.details(), id] as const,
|
||||
types: () => [...queryKeys.all, 'types'] as const,
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook for fetching all DNS providers.
|
||||
* @returns Query result with providers array
|
||||
*/
|
||||
export function useDNSProviders() {
|
||||
return useQuery({
|
||||
queryKey: queryKeys.list(),
|
||||
queryFn: getDNSProviders,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook for fetching a single DNS provider.
|
||||
* @param id - DNS provider ID
|
||||
* @returns Query result with provider data
|
||||
*/
|
||||
export function useDNSProvider(id: number) {
|
||||
return useQuery({
|
||||
queryKey: queryKeys.detail(id),
|
||||
queryFn: () => getDNSProvider(id),
|
||||
enabled: id > 0,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook for fetching supported DNS provider types.
|
||||
* @returns Query result with provider types array
|
||||
*/
|
||||
export function useDNSProviderTypes() {
|
||||
return useQuery({
|
||||
queryKey: queryKeys.types(),
|
||||
queryFn: getDNSProviderTypes,
|
||||
staleTime: 1000 * 60 * 60, // 1 hour - types rarely change
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook providing DNS provider mutation operations.
|
||||
* @returns Object with mutation functions for create, update, delete, and test
|
||||
*/
|
||||
export function useDNSProviderMutations() {
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
const createMutation = useMutation({
|
||||
mutationFn: (data: DNSProviderRequest) => createDNSProvider(data),
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.list() })
|
||||
},
|
||||
})
|
||||
|
||||
const updateMutation = useMutation({
|
||||
mutationFn: ({ id, data }: { id: number; data: DNSProviderRequest }) =>
|
||||
updateDNSProvider(id, data),
|
||||
onSuccess: (_, variables) => {
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.list() })
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.detail(variables.id) })
|
||||
},
|
||||
})
|
||||
|
||||
const deleteMutation = useMutation({
|
||||
mutationFn: (id: number) => deleteDNSProvider(id),
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.list() })
|
||||
},
|
||||
})
|
||||
|
||||
const testMutation = useMutation({
|
||||
mutationFn: (id: number) => testDNSProvider(id),
|
||||
})
|
||||
|
||||
const testCredentialsMutation = useMutation({
|
||||
mutationFn: (data: DNSProviderRequest) => testDNSProviderCredentials(data),
|
||||
})
|
||||
|
||||
return {
|
||||
createMutation,
|
||||
updateMutation,
|
||||
deleteMutation,
|
||||
testMutation,
|
||||
testCredentialsMutation,
|
||||
}
|
||||
}
|
||||
|
||||
export type {
|
||||
DNSProvider,
|
||||
DNSProviderRequest,
|
||||
DNSProviderTypeInfo,
|
||||
DNSProviderField,
|
||||
DNSTestResult,
|
||||
}
|
||||
Reference in New Issue
Block a user