You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gcgj-dify-1.7.0/web/app/components/rag-pipeline/components/rag-pipeline-header/index.tsx

62 lines
1.7 KiB
TypeScript

import {
memo,
useCallback,
useMemo,
} from 'react'
import { useTranslation } from 'react-i18next'
import type { HeaderProps } from '@/app/components/workflow/header'
import Header from '@/app/components/workflow/header'
import { fetchWorkflowRunHistory } from '@/service/workflow'
import {
useStore,
useWorkflowStore,
} from '@/app/components/workflow/store'
import InputFieldButton from './input-field-button'
import Publisher from './publisher'
const RagPipelineHeader = () => {
const { t } = useTranslation()
const workflowStore = useWorkflowStore()
const pipelineId = useStore(s => s.pipelineId)
const showDebugAndPreviewPanel = useStore(s => s.showDebugAndPreviewPanel)
const viewHistoryProps = useMemo(() => {
return {
historyUrl: `/rag/pipelines/${pipelineId}/workflow-runs`,
historyFetcher: fetchWorkflowRunHistory,
}
}, [pipelineId])
const handleStopRun = useCallback(() => {
const { setShowDebugAndPreviewPanel } = workflowStore.getState()
setShowDebugAndPreviewPanel(false)
}, [workflowStore])
const headerProps: HeaderProps = useMemo(() => {
return {
normal: {
components: {
left: <InputFieldButton />,
middle: <Publisher />,
},
runAndHistoryProps: {
showRunButton: true,
runButtonText: t('workflow.singleRun.testRun'),
viewHistoryProps,
isRunning: showDebugAndPreviewPanel,
onStopRun: handleStopRun,
},
},
viewHistory: {
viewHistoryProps,
},
}
}, [viewHistoryProps, showDebugAndPreviewPanel, handleStopRun, t])
return (
<Header {...headerProps} />
)
}
export default memo(RagPipelineHeader)