@@ -34,6 +34,7 @@ import {
34
34
DEFAULT_NEW_WORKFLOW_DESCRIPTION ,
35
35
USE_CASE ,
36
36
WORKFLOW_STATE ,
37
+ processNodes ,
37
38
reduceToTemplate ,
38
39
} from '../../../../common' ;
39
40
import {
@@ -104,16 +105,20 @@ export function ResizableWorkspace(props: ResizableWorkspaceProps) {
104
105
> ( ) ;
105
106
106
107
// Save/provision/deprovision button state
107
- const isSaveable = isFirstSave ? true : isDirty ;
108
+ const isSaveable =
109
+ props . workflow !== undefined && ( isFirstSave ? true : isDirty ) ;
108
110
const isProvisionable =
111
+ props . workflow !== undefined &&
109
112
! isDirty &&
110
113
! props . isNewWorkflow &&
111
114
formValidOnSubmit &&
112
115
flowValidOnSubmit &&
113
116
props . workflow ?. state === WORKFLOW_STATE . NOT_STARTED ;
114
117
const isDeprovisionable =
118
+ props . workflow !== undefined &&
115
119
! props . isNewWorkflow &&
116
120
props . workflow ?. state !== WORKFLOW_STATE . NOT_STARTED ;
121
+ const readonly = props . workflow === undefined || isDeprovisionable ;
117
122
118
123
// Loading state
119
124
const [ isProvisioning , setIsProvisioning ] = useState < boolean > ( false ) ;
@@ -377,7 +382,7 @@ export function ResizableWorkspace(props: ResizableWorkspaceProps) {
377
382
</ EuiButton > ,
378
383
< EuiButton
379
384
fill = { false }
380
- disabled = { ! isSaveable || isLoadingGlobal }
385
+ disabled = { ! isSaveable || isLoadingGlobal || isDeprovisionable }
381
386
isLoading = { isSaving }
382
387
// TODO: if props.isNewWorkflow is true, clear the workflow cache if saving is successful.
383
388
onClick = { ( ) => {
@@ -458,6 +463,7 @@ export function ResizableWorkspace(props: ResizableWorkspaceProps) {
458
463
< Workspace
459
464
id = "ingest"
460
465
workflow = { workflow }
466
+ readonly = { readonly }
461
467
onNodesChange = { onNodesChange }
462
468
onSelectionChange = { onSelectionChange }
463
469
/>
@@ -481,7 +487,9 @@ export function ResizableWorkspace(props: ResizableWorkspaceProps) {
481
487
>
482
488
< EuiFlexItem >
483
489
< ComponentDetails
490
+ workflow = { props . workflow }
484
491
selectedComponent = { selectedComponent }
492
+ isDeprovisionable = { isDeprovisionable }
485
493
onFormChange = { onFormChange }
486
494
/>
487
495
</ EuiFlexItem >
0 commit comments