import { IFlowData, IFlowUpdateParam } from '@/types/flow'; import { Button, Form, Input, Modal, Radio, message } from 'antd'; import { useTranslation } from 'react-i18next'; import { ReactFlowInstance } from 'reactflow'; type Props = { reactFlow: ReactFlowInstance; flowInfo?: IFlowUpdateParam; isExportFlowModalOpen: boolean; setIsExportFlowModalOpen: (value: boolean) => void; }; export const ExportFlowModal: React.FC = ({ reactFlow, flowInfo, isExportFlowModalOpen, setIsExportFlowModalOpen, }) => { const { t } = useTranslation(); const [form] = Form.useForm(); const [messageApi, contextHolder] = message.useMessage(); const onFlowExport = async (values: any) => { if (values.format === 'json') { const flowData = reactFlow.toObject() as IFlowData; const blob = new Blob([JSON.stringify(flowData)], { type: 'text/plain;charset=utf-8', }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = values.file_name || 'flow.json'; a.click(); } else { const linkUrl = `${process.env.API_BASE_URL ?? ''}/api/v2/serve/awel/flow/export/${values.uid}?export_type=${values.export_type}&format=${values.format}`; window.open(linkUrl); } messageApi.success(t('Export_Flow_Success')); setIsExportFlowModalOpen(false); }; return ( <> setIsExportFlowModalOpen(false)} footer={[ , , ]} >
JSON DBGPTS File JSON
{contextHolder} ); };