1
- import React , { useEffect , useRef , useState } from 'react'
1
+ import React , { useEffect } from 'react'
2
2
import { useDispatch , useSelector } from 'react-redux'
3
3
import { useHistory , useLocation , useParams } from 'react-router-dom'
4
- import { Formik , FormikProps } from 'formik'
5
4
6
5
import { EuiFlexGroup , EuiFlexItem } from '@elastic/eui'
7
6
import {
8
7
appContextSelector ,
9
8
resetDatabaseContext ,
10
9
resetRdiContext ,
11
10
setAppContextConnectedRdiInstanceId ,
12
- setPipelineDialogState ,
13
11
} from 'uiSrc/slices/app/context'
14
12
import { IRoute , PageNames , Pages } from 'uiSrc/constants'
15
13
import {
@@ -22,50 +20,26 @@ import {
22
20
fetchInstancesAction ,
23
21
instancesSelector as dbInstancesSelector
24
22
} from 'uiSrc/slices/instances/instances'
25
- import {
26
- deployPipelineAction ,
27
- getPipelineStatusAction ,
28
- rdiPipelineSelector ,
29
- resetPipelineAction ,
30
- resetPipelineChecked ,
31
- setPipelineInitialState ,
32
- } from 'uiSrc/slices/rdi/pipeline'
33
- import { IActionPipelineResultProps , IPipeline } from 'uiSrc/slices/interfaces'
34
- import { createAxiosError , isContainJSONModule , Nullable , pipelineToJson } from 'uiSrc/utils'
35
- import { rdiErrorMessages } from 'uiSrc/pages/rdi/constants'
36
- import { addErrorNotification } from 'uiSrc/slices/app/notifications'
37
23
38
24
import { RdiInstancePageTemplate } from 'uiSrc/templates'
39
25
import { RdiInstanceHeader } from 'uiSrc/components'
40
- import { TelemetryEvent , sendEventTelemetry } from 'uiSrc/telemetry'
41
26
import InstancePageRouter from './InstancePageRouter'
42
- import { ConfirmLeavePagePopup , RdiPipelineHeader } from './components'
43
- import { useUndeployedChangesPrompt } from './hooks'
27
+ import { RdiPipelineHeader } from './components'
44
28
import styles from './styles.module.scss'
45
29
46
30
export interface Props {
47
31
routes : IRoute [ ]
48
32
}
49
33
50
- const getInitialValues = ( data : Nullable < IPipeline > ) : IPipeline => ( {
51
- config : data ?. config ?? '' ,
52
- jobs : data ?. jobs ?? [ ] ,
53
- } )
54
-
55
34
const RdiInstancePage = ( { routes = [ ] } : Props ) => {
56
35
const dispatch = useDispatch ( )
57
36
const history = useHistory ( )
58
37
const { pathname } = useLocation ( )
59
38
60
39
const { rdiInstanceId } = useParams < { rdiInstanceId : string } > ( )
61
40
const { lastPage, contextRdiInstanceId } = useSelector ( appContextSelector )
62
- const { data, resetChecked } = useSelector ( rdiPipelineSelector )
63
41
const { data : rdiInstances } = useSelector ( rdiInstancesSelector )
64
42
const { data : dbInstances } = useSelector ( dbInstancesSelector )
65
- const { showModal, handleCloseModal, handleConfirmLeave } = useUndeployedChangesPrompt ( )
66
-
67
- const [ initialFormValues , setInitialFormValues ] = useState < IPipeline > ( getInitialValues ( data ) )
68
- const formikRef = useRef < FormikProps < IPipeline > > ( null )
69
43
70
44
useEffect ( ( ) => {
71
45
if ( ! dbInstances ?. length ) {
@@ -99,74 +73,18 @@ const RdiInstancePage = ({ routes = [] }: Props) => {
99
73
}
100
74
} , [ ] )
101
75
102
- useEffect ( ( ) => {
103
- setInitialFormValues ( getInitialValues ( data ) )
104
- formikRef . current ?. resetForm ( )
105
- } , [ data ] )
106
-
107
- // set initial values
108
- useEffect ( ( ) => ( ) => {
109
- dispatch ( setPipelineInitialState ( ) )
110
- dispatch ( setPipelineDialogState ( true ) )
111
- } , [ ] )
112
-
113
- const actionPipelineCallback = ( event : TelemetryEvent , result : IActionPipelineResultProps ) => {
114
- sendEventTelemetry ( {
115
- event,
116
- eventData : {
117
- id : rdiInstanceId ,
118
- ...result ,
119
- }
120
- } )
121
- dispatch ( getPipelineStatusAction ( rdiInstanceId ) )
122
- }
123
-
124
- const updatePipelineStatus = ( ) => {
125
- if ( resetChecked ) {
126
- dispatch ( resetPipelineChecked ( false ) )
127
- dispatch ( resetPipelineAction ( rdiInstanceId ,
128
- ( result : IActionPipelineResultProps ) => actionPipelineCallback ( TelemetryEvent . RDI_PIPELINE_RESET , result ) ,
129
- ( result : IActionPipelineResultProps ) => actionPipelineCallback ( TelemetryEvent . RDI_PIPELINE_RESET , result ) ) )
130
- } else {
131
- dispatch ( getPipelineStatusAction ( rdiInstanceId ) )
132
- }
133
- }
134
-
135
- const onSubmit = ( values : IPipeline ) => {
136
- const JSONValues = pipelineToJson ( values , ( errors ) => {
137
- dispatch ( addErrorNotification ( createAxiosError ( {
138
- message : rdiErrorMessages . invalidStructure ( errors [ 0 ] . filename , errors [ 0 ] . msg )
139
- } ) ) )
140
- } )
141
- if ( ! JSONValues ) {
142
- return
143
- }
144
- dispatch ( deployPipelineAction ( rdiInstanceId , JSONValues , updatePipelineStatus ,
145
- ( ) => dispatch ( getPipelineStatusAction ( rdiInstanceId ) ) ) , )
146
- }
147
-
148
76
return (
149
- < Formik
150
- initialValues = { initialFormValues }
151
- enableReinitialize
152
- onSubmit = { onSubmit }
153
- innerRef = { formikRef }
154
- >
155
- < >
156
- < EuiFlexGroup className = { styles . page } direction = "column" gutterSize = "none" responsive = { false } >
157
- < EuiFlexItem grow = { false } >
158
- < RdiInstanceHeader />
159
- </ EuiFlexItem >
160
- < EuiFlexItem grow = { false } >
161
- < RdiPipelineHeader />
162
- </ EuiFlexItem >
163
- < RdiInstancePageTemplate >
164
- < InstancePageRouter routes = { routes } />
165
- { showModal && < ConfirmLeavePagePopup onClose = { handleCloseModal } onConfirm = { handleConfirmLeave } /> }
166
- </ RdiInstancePageTemplate >
167
- </ EuiFlexGroup >
168
- </ >
169
- </ Formik >
77
+ < EuiFlexGroup className = { styles . page } direction = "column" gutterSize = "none" responsive = { false } >
78
+ < EuiFlexItem grow = { false } >
79
+ < RdiInstanceHeader />
80
+ </ EuiFlexItem >
81
+ < EuiFlexItem grow = { false } >
82
+ < RdiPipelineHeader />
83
+ </ EuiFlexItem >
84
+ < RdiInstancePageTemplate >
85
+ < InstancePageRouter routes = { routes } />
86
+ </ RdiInstancePageTemplate >
87
+ </ EuiFlexGroup >
170
88
)
171
89
}
172
90
0 commit comments