@@ -100,20 +100,34 @@ export default class Meta extends Component {
100100 onChange : PropTypes . func ,
101101 }
102102
103- componentDidUpdate ( ) {
103+ componentDidUpdate ( prevProps ) {
104104 const { meta, setMeta } = this . props ;
105105
106106 if ( ! meta . runner_type ) {
107107 setMeta ( 'runner_type' , default_runner_type ) ;
108108 }
109+
110+ this . handleAutoSaveUpdates ( prevProps ) ;
111+ }
112+
113+ handleAutoSaveUpdates ( prevProps ) {
114+ const { meta, vars, onChange } = this . props ;
115+
116+ if ( prevProps . meta !== meta ) {
117+ onChange ( ) ;
118+ }
119+
120+ if ( prevProps . vars !== vars ) {
121+ onChange ( ) ;
122+ }
109123 }
110124
111125 handleSectionSwitch ( section : string ) {
112126 this . props . navigate ( { section } ) ;
113127 }
114128
115129 handleVarsChange ( publish : Array < { } > ) {
116- const { setVars, onChange } = this . props ;
130+ const { setVars } = this . props ;
117131 const val = ( publish ? publish . slice ( 0 ) : [ ] ) . map ( kv => {
118132 const key = Object . keys ( kv ) [ 0 ] ;
119133 const val = kv [ key ] ;
@@ -136,7 +150,6 @@ export default class Meta extends Component {
136150
137151 // Make sure to mutate the copy
138152 setVars ( val ) ;
139- onChange ( ) ;
140153 }
141154
142155 addVar ( ) {
@@ -159,7 +172,6 @@ export default class Meta extends Component {
159172 command : 'set' ,
160173 args : [ 'entry_point' , entryPoint ] ,
161174 } ) ;
162- this . props . onChange ( ) ;
163175 }
164176 catch ( error ) {
165177 store . dispatch ( {
@@ -199,19 +211,13 @@ export default class Meta extends Component {
199211 name = "Runner Type"
200212 value = { meta . runner_type }
201213 spec = { { enum : [ ...new Set ( [ 'mistral-v2' , 'orquesta' ] ) ] , default : default_runner_type } }
202- onChange = { ( v ) => {
203- setMeta ( 'runner_type' , v ) ;
204- onChange ( ) ;
205- } }
214+ onChange = { ( v ) => setMeta ( 'runner_type' , v ) }
206215 />
207216 < EnumField
208217 name = "Pack"
209218 value = { pack }
210219 spec = { { enum : packs } }
211- onChange = { ( v ) => {
212- setPack ( v ) ;
213- onChange ( ) ;
214- } }
220+ onChange = { ( v ) => setPack ( v ) }
215221 />
216222 < StringField
217223 name = "Name"
@@ -221,27 +227,18 @@ export default class Meta extends Component {
221227 < StringField
222228 name = "Description"
223229 value = { meta . description }
224- onChange = { ( v ) => {
225- setMeta ( 'description' , v ) ;
226- onChange ( ) ;
227- } }
230+ onChange = { ( v ) => setMeta ( 'description' , v ) }
228231 />
229232 < BooleanField
230233 name = "Enabled"
231234 value = { meta . enabled }
232235 spec = { { } }
233- onChange = { ( v ) => {
234- setMeta ( 'enabled' , v ) ;
235- onChange ( ) ;
236- } }
236+ onChange = { ( v ) => setMeta ( 'enabled' , v ) }
237237 />
238238 < StringField
239239 name = "Entry point"
240240 value = { meta . entry_point !== 'undefined' ? meta . entry_point :`workflows/${ meta . name } .yaml` }
241- onChange = { ( v ) => {
242- setMeta ( 'entry_point' , v || '' ) ;
243- onChange ( ) ;
244- } }
241+ onChange = { ( v ) => setMeta ( 'entry_point' , v || '' ) }
245242 />
246243 </ Panel >
247244 ) ,
0 commit comments