1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
| import {
| useCallback,
| useMemo,
| useState,
| } from 'react'
| import { ErrorHandleTypeEnum } from './types'
| import type { DefaultValueForm } from './types'
| import { getDefaultValue } from './utils'
| import type {
| CommonNodeType,
| } from '@/app/components/workflow/types'
| import {
| useEdgesInteractions,
| useNodeDataUpdate,
| } from '@/app/components/workflow/hooks'
|
| export const useDefaultValue = (
| id: string,
| ) => {
| const { handleNodeDataUpdateWithSyncDraft } = useNodeDataUpdate()
| const handleFormChange = useCallback((
| {
| key,
| value,
| type,
| }: DefaultValueForm,
| data: CommonNodeType,
| ) => {
| const default_value = data.default_value || []
| const index = default_value.findIndex(form => form.key === key)
|
| if (index > -1) {
| const newDefaultValue = [...default_value]
| newDefaultValue[index].value = value
| handleNodeDataUpdateWithSyncDraft({
| id,
| data: {
| default_value: newDefaultValue,
| },
| })
| return
| }
|
| handleNodeDataUpdateWithSyncDraft({
| id,
| data: {
| default_value: [
| ...default_value,
| {
| key,
| value,
| type,
| },
| ],
| },
| })
| }, [handleNodeDataUpdateWithSyncDraft, id])
|
| return {
| handleFormChange,
| }
| }
|
| export const useErrorHandle = (
| id: string,
| data: CommonNodeType,
| ) => {
| const initCollapsed = useMemo(() => {
| if (data.error_strategy === ErrorHandleTypeEnum.none)
| return true
|
| return false
| }, [data.error_strategy])
| const [collapsed, setCollapsed] = useState(initCollapsed)
| const { handleNodeDataUpdateWithSyncDraft } = useNodeDataUpdate()
| const { handleEdgeDeleteByDeleteBranch } = useEdgesInteractions()
|
| const handleErrorHandleTypeChange = useCallback((value: ErrorHandleTypeEnum, data: CommonNodeType) => {
| if (data.error_strategy === value)
| return
|
| if (value === ErrorHandleTypeEnum.none) {
| handleNodeDataUpdateWithSyncDraft({
| id,
| data: {
| error_strategy: undefined,
| default_value: undefined,
| },
| })
| setCollapsed(true)
| handleEdgeDeleteByDeleteBranch(id, ErrorHandleTypeEnum.failBranch)
| }
|
| if (value === ErrorHandleTypeEnum.failBranch) {
| handleNodeDataUpdateWithSyncDraft({
| id,
| data: {
| error_strategy: value,
| default_value: undefined,
| },
| })
| setCollapsed(false)
| }
|
| if (value === ErrorHandleTypeEnum.defaultValue) {
| handleNodeDataUpdateWithSyncDraft({
| id,
| data: {
| error_strategy: value,
| default_value: getDefaultValue(data),
| },
| })
| setCollapsed(false)
| handleEdgeDeleteByDeleteBranch(id, ErrorHandleTypeEnum.failBranch)
| }
| }, [id, handleNodeDataUpdateWithSyncDraft, handleEdgeDeleteByDeleteBranch])
|
| return {
| collapsed,
| setCollapsed,
| handleErrorHandleTypeChange,
| }
| }
|
|