@@ -13,13 +13,16 @@ class NewFolderForm extends React.Component {
13
13
}
14
14
15
15
render ( ) {
16
- const { fields : { name } , handleSubmit } = this . props ;
16
+ const {
17
+ fields : { name } , handleSubmit, submitting, pristine
18
+ } = this . props ;
17
19
return (
18
20
< form
19
21
className = "new-folder-form"
20
22
onSubmit = { ( data ) => {
21
- handleSubmit ( this . createFolder ) ( data ) ;
22
- this . props . closeModal ( ) ;
23
+ if ( handleSubmit ( this . createFolder ) ( data ) ) {
24
+ this . props . closeModal ( ) ;
25
+ }
23
26
} }
24
27
>
25
28
< label className = "new-folder-form__name-label" htmlFor = "name" > Name:</ label >
@@ -31,7 +34,8 @@ class NewFolderForm extends React.Component {
31
34
ref = { ( element ) => { this . fileName = element ; } }
32
35
{ ...domOnlyProps ( name ) }
33
36
/>
34
- < input type = "submit" value = "Add Folder" aria-label = "add folder" />
37
+ < input type = "submit" value = "Add Folder" disabled = { submitting || pristine } aria-label = "add folder" />
38
+ { name . touched && name . error && < span className = "form-error" > { name . error } </ span > }
35
39
</ form >
36
40
) ;
37
41
}
@@ -43,7 +47,12 @@ NewFolderForm.propTypes = {
43
47
} ) . isRequired ,
44
48
handleSubmit : PropTypes . func . isRequired ,
45
49
createFolder : PropTypes . func . isRequired ,
46
- closeModal : PropTypes . func . isRequired
50
+ closeModal : PropTypes . func . isRequired ,
51
+ submitting : PropTypes . bool ,
52
+ pristine : PropTypes . bool
53
+ } ;
54
+ NewFolderForm . defaultProps = {
55
+ submitting : false ,
56
+ pristine : true
47
57
} ;
48
-
49
58
export default NewFolderForm ;
0 commit comments