@@ -148,28 +148,28 @@ export const ClassFieldsEditor = (props) => {
148
148
} ;
149
149
150
150
const onModalSubmit = ( values ) => {
151
- if ( state . selectedRowId !== undefined ) {
152
- // Edit a field
153
- const data = formatFieldValues ( values , state . selectedRowId ) ;
151
+ const isEdit = state . selectedRowId !== undefined ;
152
+ const data = formatFieldValues ( values , isEdit ? state . selectedRowId : state . rows . length ) ;
153
+
154
+ const updateState = ( newData ) => {
154
155
setState ( ( prevState ) => ( {
155
156
...prevState ,
156
- rows : prevState . rows . map ( ( field ) => ( field . id === data . id ? data : field ) ) ,
157
+ rows : isEdit
158
+ ? prevState . rows . map ( ( field ) => ( field . id === newData . id ? newData : field ) )
159
+ : [ ...prevState . rows , newData ] ,
157
160
} ) ) ;
161
+ handleModalClose ( ) ;
162
+ } ;
163
+
164
+ if ( isEdit ) {
165
+ updateState ( data ) ;
158
166
} else {
159
- // Add a field
160
- http . post ( `/miq_ae_class/field_accept?button=accept` , values , {
161
- skipErrors : [ 400 ] ,
162
- } ) . then ( ( ) => {
163
- const data = formatFieldValues ( values , state . rows . length ) ;
164
- setState ( ( prevState ) => ( {
165
- ...prevState ,
166
- rows : [ ...prevState . rows , data ] ,
167
- } ) ) ;
168
- } ) . catch ( ( error ) => {
169
- } ) ;
167
+ http . post ( `/miq_ae_class/field_accept?button=accept` , values , { skipErrors : [ 400 ] } )
168
+ . then ( ( ) => updateState ( data ) )
169
+ . catch ( ( error ) => {
170
+ console . error ( 'Failed to save new field:' , error ) ;
171
+ } ) ;
170
172
}
171
-
172
- handleModalClose ( ) ;
173
173
} ;
174
174
175
175
// const onCancel = () => {
0 commit comments