|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import { useCallback } from 'react'
- import {
- useStore,
- useWorkflowStore,
- } from '@/app/components/workflow/store'
- import { useWorkflowConfig } from '@/service/use-workflow'
- import type { FetchWorkflowDraftResponse } from '@/types/workflow'
- import { useDataSourceList } from '@/service/use-pipeline'
- import type { DataSourceItem } from '@/app/components/workflow/block-selector/types'
- import { basePath } from '@/utils/var'
- import type { FileUploadConfigResponse } from '@/models/common'
-
- export const usePipelineConfig = () => {
- const pipelineId = useStore(s => s.pipelineId)
- const workflowStore = useWorkflowStore()
-
- const handleUpdateWorkflowConfig = useCallback((config: Record<string, any>) => {
- const { setWorkflowConfig } = workflowStore.getState()
-
- setWorkflowConfig(config)
- }, [workflowStore])
- useWorkflowConfig(
- pipelineId ? `/rag/pipelines/${pipelineId}/workflows/draft/config` : '',
- handleUpdateWorkflowConfig,
- )
-
- const handleUpdateNodesDefaultConfigs = useCallback((nodesDefaultConfigs: Record<string, any>) => {
- const { setNodesDefaultConfigs } = workflowStore.getState()
-
- setNodesDefaultConfigs!(nodesDefaultConfigs)
- }, [workflowStore])
- useWorkflowConfig(
- pipelineId ? `/rag/pipelines/${pipelineId}/workflows/default-workflow-block-configs` : '',
- handleUpdateNodesDefaultConfigs,
- )
-
- const handleUpdatePublishedAt = useCallback((publishedWorkflow: FetchWorkflowDraftResponse) => {
- const { setPublishedAt } = workflowStore.getState()
-
- setPublishedAt(publishedWorkflow?.created_at)
- }, [workflowStore])
- useWorkflowConfig(
- pipelineId ? `/rag/pipelines/${pipelineId}/workflows/publish` : '',
- handleUpdatePublishedAt,
- )
-
- const handleUpdateDataSourceList = useCallback((dataSourceList: DataSourceItem[]) => {
- dataSourceList.forEach((item) => {
- const icon = item.declaration.identity.icon
- if (typeof icon == 'string' && !icon.includes(basePath))
- item.declaration.identity.icon = `${basePath}${icon}`
- })
- const { setDataSourceList } = workflowStore.getState()
- setDataSourceList!(dataSourceList)
- }, [workflowStore])
-
- const handleUpdateWorkflowFileUploadConfig = useCallback((config: FileUploadConfigResponse) => {
- const { setFileUploadConfig } = workflowStore.getState()
- setFileUploadConfig(config)
- }, [workflowStore])
- useWorkflowConfig('/files/upload', handleUpdateWorkflowFileUploadConfig)
-
- useDataSourceList(!!pipelineId, handleUpdateDataSourceList)
- }
|