71 lines
1.7 KiB
TypeScript
71 lines
1.7 KiB
TypeScript
|
|
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 };
|
||
|
|
};
|