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