import { useSetModalState } from '@/hooks/common-hooks'; import { useFetchFlowList, useFetchFlowTemplates, useSetFlow, } from '@/hooks/flow-hooks'; import { useCallback } from 'react'; import { useNavigate } from 'umi'; export const useFetchDataOnMount = () => { const { data, loading } = useFetchFlowList(); return { list: data, loading }; }; export const useSaveFlow = () => { const { visible: flowSettingVisible, hideModal: hideFlowSettingModal, showModal: showFileRenameModal, } = useSetModalState(); const { loading, setFlow } = useSetFlow(); const navigate = useNavigate(); const { data: list } = useFetchFlowTemplates(); const onFlowOk = useCallback( async (title: string, templateId: string) => { const templateItem = list.find((x) => x.id === templateId); let dsl = templateItem?.dsl; const ret = await setFlow({ title, dsl, avatar: templateItem?.avatar, }); if (ret?.code === 0) { hideFlowSettingModal(); navigate(`/flow/${ret.data.id}`); } }, [setFlow, hideFlowSettingModal, navigate, list], ); return { flowSettingLoading: loading, initialFlowName: '', onFlowOk, flowSettingVisible, hideFlowSettingModal, showFlowSettingModal: showFileRenameModal, }; };