|
import flowService from '@/services/flow-service'; |
|
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; |
|
|
|
export const useFetchFlowTemplates = () => { |
|
const { data } = useQuery({ |
|
queryKey: ['fetchFlowTemplates'], |
|
initialData: [], |
|
queryFn: async () => { |
|
const { data } = await flowService.listTemplates(); |
|
|
|
return data; |
|
}, |
|
}); |
|
|
|
return data; |
|
}; |
|
|
|
export const useFetchFlowList = () => { |
|
const { data, isFetching: loading } = useQuery({ |
|
queryKey: ['fetchFlowList'], |
|
initialData: [], |
|
queryFn: async () => { |
|
const { data } = await flowService.listCanvas(); |
|
|
|
return data?.data ?? []; |
|
}, |
|
}); |
|
|
|
return { data, loading }; |
|
}; |
|
|
|
export const useSetFlow = () => { |
|
const queryClient = useQueryClient(); |
|
const { |
|
data, |
|
isPending: loading, |
|
mutateAsync, |
|
} = useMutation({ |
|
mutationKey: ['setFlow'], |
|
mutationFn: async (params: any) => { |
|
const { data } = await flowService.setCanvas(params); |
|
if (data.retcode === 0) { |
|
queryClient.invalidateQueries({ queryKey: ['fetchFlowList'] }); |
|
} |
|
return data?.retcode; |
|
}, |
|
}); |
|
|
|
return { data, loading, setFlow: mutateAsync }; |
|
}; |
|
|
|
export const useDeleteFlow = () => { |
|
const queryClient = useQueryClient(); |
|
const { |
|
data, |
|
isPending: loading, |
|
mutateAsync, |
|
} = useMutation({ |
|
mutationKey: ['deleteFlow'], |
|
mutationFn: async (canvasIds: string[]) => { |
|
const { data } = await flowService.removeCanvas({ canvasIds }); |
|
if (data.retcode === 0) { |
|
queryClient.invalidateQueries({ queryKey: ['fetchFlowList'] }); |
|
} |
|
return data?.data ?? []; |
|
}, |
|
}); |
|
|
|
return { data, loading, deleteFlow: mutateAsync }; |
|
}; |
|
|