feat: Display existing components in edit form

This commit is contained in:
Tola Leng
2025-06-06 18:51:49 +08:00
parent f4f6cb48db
commit 9097a618cd
@@ -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',
});
},
});
};