@@ -34,6 +34,7 @@ import {
34
34
DEFAULT_NEW_WORKFLOW_DESCRIPTION ,
35
35
USE_CASE ,
36
36
WORKFLOW_STATE ,
37
+ processNodes ,
37
38
} from '../../../../common' ;
38
39
import {
39
40
AppState ,
@@ -47,7 +48,6 @@ import {
47
48
} from '../../../store' ;
48
49
import { Workspace } from './workspace' ;
49
50
import { ComponentDetails } from '../component_details' ;
50
- import { processNodes } from '../utils' ;
51
51
52
52
// styling
53
53
import './workspace-styles.scss' ;
@@ -147,30 +147,36 @@ export function ResizableWorkspace(props: ResizableWorkspaceProps) {
147
147
// Metadata fields (name/description/use_case/etc.) may not exist if the user
148
148
// cold reloads the page on a new, unsaved workflow.
149
149
useEffect ( ( ) => {
150
- let workflowCopy = { ...props . workflow } as Workflow ;
151
- if ( ! workflowCopy . ui_metadata || ! workflowCopy . ui_metadata . workspaceFlow ) {
152
- workflowCopy . ui_metadata = {
153
- ...( workflowCopy . ui_metadata || { } ) ,
154
- workspaceFlow : toWorkspaceFlow ( workflowCopy . workflows ) ,
155
- } ;
156
- console . debug (
157
- `There is no saved UI flow for workflow: ${ workflowCopy . name } . Generating a default one.`
158
- ) ;
159
- }
150
+ if ( props . workflow ) {
151
+ let workflowCopy = { ...props . workflow } as Workflow ;
152
+ if (
153
+ ! workflowCopy . ui_metadata ||
154
+ ! workflowCopy . ui_metadata . workspaceFlow
155
+ ) {
156
+ workflowCopy . ui_metadata = {
157
+ ...( workflowCopy . ui_metadata || { } ) ,
158
+ workspaceFlow : toWorkspaceFlow ( workflowCopy . workflows ) ,
159
+ } ;
160
+ console . debug (
161
+ `There is no saved UI flow for workflow: ${ workflowCopy . name } . Generating a default one.`
162
+ ) ;
163
+ }
160
164
161
- // TODO: tune some of the defaults, like use_case and version as these will change
162
- workflowCopy = {
163
- ...workflowCopy ,
164
- name : workflowCopy . name || DEFAULT_NEW_WORKFLOW_NAME ,
165
- description : workflowCopy . description || DEFAULT_NEW_WORKFLOW_DESCRIPTION ,
166
- use_case : workflowCopy . use_case || USE_CASE . PROVISION ,
167
- version : workflowCopy . version || {
168
- template : '1.0.0' ,
169
- compatibility : [ '2.12.0' , '3.0.0' ] ,
170
- } ,
171
- } ;
165
+ // TODO: tune some of the defaults, like use_case and version as these will change
166
+ workflowCopy = {
167
+ ...workflowCopy ,
168
+ name : workflowCopy . name || DEFAULT_NEW_WORKFLOW_NAME ,
169
+ description :
170
+ workflowCopy . description || DEFAULT_NEW_WORKFLOW_DESCRIPTION ,
171
+ use_case : workflowCopy . use_case || USE_CASE . PROVISION ,
172
+ version : workflowCopy . version || {
173
+ template : '1.0.0' ,
174
+ compatibility : [ '2.12.0' , '3.0.0' ] ,
175
+ } ,
176
+ } ;
172
177
173
- setWorkflow ( workflowCopy ) ;
178
+ setWorkflow ( workflowCopy ) ;
179
+ }
174
180
} , [ props . workflow ] ) ;
175
181
176
182
// Hook to updated the selected ReactFlow component
@@ -260,7 +266,7 @@ export function ResizableWorkspace(props: ResizableWorkspaceProps) {
260
266
let curFlowState = reactFlowInstance . toObject ( ) as WorkspaceFlowState ;
261
267
curFlowState = {
262
268
...curFlowState ,
263
- nodes : processNodes ( curFlowState . nodes ) ,
269
+ nodes : processNodes ( curFlowState . nodes , formikProps . values ) ,
264
270
} ;
265
271
if ( validateWorkspaceFlow ( curFlowState ) ) {
266
272
setFlowValidOnSubmit ( true ) ;
0 commit comments