@@ -6,7 +6,7 @@ import { escapeRegexTokens } from './utils'
6
6
const remove : Mutator < any > = (
7
7
[name, index]: any[],
8
8
state: MutableState< any > ,
9
- { changeValue , renameField } : Tools< any >
9
+ { changeValue , renameField , getIn , setIn } : Tools< any >
10
10
) => {
11
11
let returnValue
12
12
changeValue ( state , name , ( array : ?( any [ ] ) ) : any [ ] => {
@@ -27,6 +27,24 @@ const remove: Mutator<any> = (
27
27
if ( fieldIndex === index ) {
28
28
// delete any subfields for this array item
29
29
delete state . fields [ key ]
30
+
31
+ // delete any submitErrors for this array item
32
+ // if root key of array item and has submitErrors
33
+ if ( key === `${ name } [${ index } ]` ) {
34
+ // do it only for removable index
35
+ // Can array be in root?
36
+ // formState.submitErrors[]
37
+ // formState.submitErrors.pathToArray[]
38
+ const path = name
39
+ ? `formState.submitErrors.${ name } `
40
+ : `formState.submitErrors${ name } `
41
+ const submitErrors = getIn ( state , path )
42
+ // if has submitErrors
43
+ if ( Array . isArray ( submitErrors ) ) {
44
+ submitErrors . splice ( index , 1 )
45
+ state = setIn ( state , path , submitErrors )
46
+ }
47
+ }
30
48
} else if ( fieldIndex > index ) {
31
49
// shift all higher ones down
32
50
delete state . fields [ key ]
0 commit comments