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 }; };