feat: Display existing components in edit form
This commit is contained in:
@@ -0,0 +1,66 @@
|
|||||||
|
|
||||||
|
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
||||||
|
import { statusPageComponentsService } from '@/services/statusPageComponentsService';
|
||||||
|
import { StatusPageComponentRecord } from '@/types/statusPageComponents.types';
|
||||||
|
import { toast } from '@/hooks/use-toast';
|
||||||
|
|
||||||
|
export const useStatusPageComponents = () => {
|
||||||
|
return useQuery({
|
||||||
|
queryKey: ['status-page-components'],
|
||||||
|
queryFn: statusPageComponentsService.getStatusPageComponents,
|
||||||
|
staleTime: 30000,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useStatusPageComponentsByOperationalId = (operationalStatusId: string) => {
|
||||||
|
return useQuery({
|
||||||
|
queryKey: ['status-page-components', operationalStatusId],
|
||||||
|
queryFn: () => statusPageComponentsService.getStatusPageComponentsByOperationalId(operationalStatusId),
|
||||||
|
enabled: !!operationalStatusId,
|
||||||
|
staleTime: 30000,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useCreateStatusPageComponent = () => {
|
||||||
|
const queryClient = useQueryClient();
|
||||||
|
|
||||||
|
return useMutation({
|
||||||
|
mutationFn: statusPageComponentsService.createStatusPageComponent,
|
||||||
|
onSuccess: () => {
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['status-page-components'] });
|
||||||
|
toast({
|
||||||
|
title: 'Success',
|
||||||
|
description: 'Status page component created successfully',
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onError: (error) => {
|
||||||
|
toast({
|
||||||
|
title: 'Error',
|
||||||
|
description: 'Failed to create status page component',
|
||||||
|
variant: 'destructive',
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useDeleteStatusPageComponent = () => {
|
||||||
|
const queryClient = useQueryClient();
|
||||||
|
|
||||||
|
return useMutation({
|
||||||
|
mutationFn: statusPageComponentsService.deleteStatusPageComponent,
|
||||||
|
onSuccess: () => {
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['status-page-components'] });
|
||||||
|
toast({
|
||||||
|
title: 'Success',
|
||||||
|
description: 'Status page component deleted successfully',
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onError: (error) => {
|
||||||
|
toast({
|
||||||
|
title: 'Error',
|
||||||
|
description: 'Failed to delete status page component',
|
||||||
|
variant: 'destructive',
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user