Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

use-pipeline-config.ts 2.4KB

5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
3 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
3 месяцев назад
5 месяцев назад
5 месяцев назад
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { useCallback } from 'react'
  2. import {
  3. useStore,
  4. useWorkflowStore,
  5. } from '@/app/components/workflow/store'
  6. import { useWorkflowConfig } from '@/service/use-workflow'
  7. import type { FetchWorkflowDraftResponse } from '@/types/workflow'
  8. import { useDataSourceList } from '@/service/use-pipeline'
  9. import type { DataSourceItem } from '@/app/components/workflow/block-selector/types'
  10. import { basePath } from '@/utils/var'
  11. import type { FileUploadConfigResponse } from '@/models/common'
  12. export const usePipelineConfig = () => {
  13. const pipelineId = useStore(s => s.pipelineId)
  14. const workflowStore = useWorkflowStore()
  15. const handleUpdateWorkflowConfig = useCallback((config: Record<string, any>) => {
  16. const { setWorkflowConfig } = workflowStore.getState()
  17. setWorkflowConfig(config)
  18. }, [workflowStore])
  19. useWorkflowConfig(
  20. pipelineId ? `/rag/pipelines/${pipelineId}/workflows/draft/config` : '',
  21. handleUpdateWorkflowConfig,
  22. )
  23. const handleUpdateNodesDefaultConfigs = useCallback((nodesDefaultConfigs: Record<string, any>) => {
  24. const { setNodesDefaultConfigs } = workflowStore.getState()
  25. setNodesDefaultConfigs!(nodesDefaultConfigs)
  26. }, [workflowStore])
  27. useWorkflowConfig(
  28. pipelineId ? `/rag/pipelines/${pipelineId}/workflows/default-workflow-block-configs` : '',
  29. handleUpdateNodesDefaultConfigs,
  30. )
  31. const handleUpdatePublishedAt = useCallback((publishedWorkflow: FetchWorkflowDraftResponse) => {
  32. const { setPublishedAt } = workflowStore.getState()
  33. setPublishedAt(publishedWorkflow?.created_at)
  34. }, [workflowStore])
  35. useWorkflowConfig(
  36. pipelineId ? `/rag/pipelines/${pipelineId}/workflows/publish` : '',
  37. handleUpdatePublishedAt,
  38. )
  39. const handleUpdateDataSourceList = useCallback((dataSourceList: DataSourceItem[]) => {
  40. dataSourceList.forEach((item) => {
  41. const icon = item.declaration.identity.icon
  42. if (typeof icon == 'string' && !icon.includes(basePath))
  43. item.declaration.identity.icon = `${basePath}${icon}`
  44. })
  45. const { setDataSourceList } = workflowStore.getState()
  46. setDataSourceList!(dataSourceList)
  47. }, [workflowStore])
  48. const handleUpdateWorkflowFileUploadConfig = useCallback((config: FileUploadConfigResponse) => {
  49. const { setFileUploadConfig } = workflowStore.getState()
  50. setFileUploadConfig(config)
  51. }, [workflowStore])
  52. useWorkflowConfig('/files/upload', handleUpdateWorkflowFileUploadConfig)
  53. useDataSourceList(!!pipelineId, handleUpdateDataSourceList)
  54. }