dify/web/app/components/rag-pipeline/hooks/use-pipeline-refresh-draft.ts
Stephen Zhou a84c2d36a3
style: format with vp fmt (#38803)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-12 15:57:46 +00:00

59 lines
2.0 KiB
TypeScript

import type { WorkflowDataUpdater } from '@/app/components/workflow/types'
import { useCallback } from 'react'
import { useWorkflowUpdate } from '@/app/components/workflow/hooks'
import { useWorkflowStore } from '@/app/components/workflow/store'
import { fetchWorkflowDraft } from '@/service/workflow'
import { processNodesWithoutDataSource } from '../utils'
export const usePipelineRefreshDraft = () => {
const workflowStore = useWorkflowStore()
const { handleUpdateWorkflowCanvas } = useWorkflowUpdate()
const handleRefreshWorkflowDraft = useCallback(() => {
const {
pipelineId,
setSyncWorkflowDraftHash,
setIsSyncingWorkflowDraft,
setEnvironmentVariables,
setEnvSecrets,
setRagPipelineVariables,
} = workflowStore.getState()
setIsSyncingWorkflowDraft(true)
fetchWorkflowDraft(`/rag/pipelines/${pipelineId}/workflows/draft`)
.then((response) => {
const { nodes: processedNodes, viewport } = processNodesWithoutDataSource(
response.graph.nodes,
response.graph.viewport,
)
handleUpdateWorkflowCanvas({
...response.graph,
nodes: processedNodes,
viewport,
} as WorkflowDataUpdater)
setSyncWorkflowDraftHash(response.hash)
setEnvSecrets(
(response.environment_variables || [])
.filter((env) => env.value_type === 'secret')
.reduce(
(acc, env) => {
acc[env.id] = env.value
return acc
},
{} as Record<string, string>,
),
)
setEnvironmentVariables(
response.environment_variables?.map((env) =>
env.value_type === 'secret' ? { ...env, value: '[__HIDDEN__]' } : env,
) || [],
)
setRagPipelineVariables?.(response.rag_pipeline_variables || [])
})
.finally(() => setIsSyncingWorkflowDraft(false))
}, [handleUpdateWorkflowCanvas, workflowStore])
return {
handleRefreshWorkflowDraft,
}
}