|
import ChatOverviewModal from '@/components/api-service/chat-overview-modal'; |
|
import { useSetModalState, useTranslate } from '@/hooks/common-hooks'; |
|
import { useFetchFlow } from '@/hooks/flow-hooks'; |
|
import { ArrowLeftOutlined } from '@ant-design/icons'; |
|
import { Button, Flex, Space } from 'antd'; |
|
import { Link, useParams } from 'umi'; |
|
import { useSaveGraph, useSaveGraphBeforeOpeningDebugDrawer } from '../hooks'; |
|
import styles from './index.less'; |
|
|
|
interface IProps { |
|
showChatDrawer(): void; |
|
} |
|
|
|
const FlowHeader = ({ showChatDrawer }: IProps) => { |
|
const { saveGraph } = useSaveGraph(); |
|
const handleRun = useSaveGraphBeforeOpeningDebugDrawer(showChatDrawer); |
|
const { data } = useFetchFlow(); |
|
const { t } = useTranslate('flow'); |
|
const { |
|
visible: overviewVisible, |
|
hideModal: hideOverviewModal, |
|
showModal: showOverviewModal, |
|
} = useSetModalState(); |
|
const { id } = useParams(); |
|
|
|
return ( |
|
<> |
|
<Flex |
|
align="center" |
|
justify={'space-between'} |
|
gap={'large'} |
|
className={styles.flowHeader} |
|
> |
|
<Space size={'large'}> |
|
<Link to={`/flow`}> |
|
<ArrowLeftOutlined /> |
|
</Link> |
|
<h3>{data.title}</h3> |
|
</Space> |
|
<Space size={'large'}> |
|
<Button onClick={handleRun}> |
|
<b>{t('run')}</b> |
|
</Button> |
|
<Button type="primary" onClick={saveGraph}> |
|
<b>{t('save')}</b> |
|
</Button> |
|
<Button type="primary" onClick={showOverviewModal}> |
|
<b>{t('publish')}</b> |
|
</Button> |
|
</Space> |
|
</Flex> |
|
{overviewVisible && ( |
|
<ChatOverviewModal |
|
visible={overviewVisible} |
|
hideModal={hideOverviewModal} |
|
id={id!} |
|
idKey="canvasId" |
|
></ChatOverviewModal> |
|
)} |
|
</> |
|
); |
|
}; |
|
|
|
export default FlowHeader; |
|
|