@@ -19,6 +19,8 @@ function folders (state = initialFolders, action) {
1919 case FOLDER_CREATE :
2020 {
2121 let newFolder = action . data . folder
22+ if ( ! _ . isString ( newFolder . name ) ) throw new Error ( 'Folder name must be a string' )
23+ newFolder . name = newFolder . name . trim ( ) . replace ( / \s / , '_' )
2224 Object . assign ( newFolder , {
2325 key : keygen ( ) ,
2426 createAt : new Date ( ) ,
@@ -27,8 +29,10 @@ function folders (state = initialFolders, action) {
2729 color : Math . round ( Math . random ( ) * 7 )
2830 } )
2931
32+ if ( newFolder . length === 0 ) throw new Error ( 'Folder name is required' )
33+
3034 let conflictFolder = _ . findWhere ( state , { name : newFolder . name } )
31- if ( conflictFolder != null ) throw new Error ( ' name conflicted!' )
35+ if ( conflictFolder != null ) throw new Error ( ` ${ newFolder . name } already exists!` )
3236 state . push ( newFolder )
3337
3438 dataStore . setFolders ( null , state )
@@ -39,11 +43,18 @@ function folders (state = initialFolders, action) {
3943 let folder = action . data . folder
4044 let targetFolder = _ . findWhere ( state , { key : folder . key } )
4145
46+ if ( ! _ . isString ( folder . name ) ) throw new Error ( 'Folder name must be a string' )
47+ folder . name = folder . name . trim ( ) . replace ( / \s / , '_' )
48+ if ( folder . length === 0 ) throw new Error ( 'Folder name is required' )
49+
4250 // Folder existence check
4351 if ( targetFolder == null ) throw new Error ( 'Folder doesnt exist' )
4452 // Name conflict check
4553 if ( targetFolder . name !== folder . name ) {
46- let conflictFolder = _ . findWhere ( state , { name : folder . name } )
54+ let conflictFolder = _ . find ( state , _folder => {
55+ return folder . name === _folder . name && folder . key !== _folder . key
56+ } )
57+ console . log ( conflictFolder )
4758 if ( conflictFolder != null ) throw new Error ( 'Name conflicted' )
4859 }
4960 Object . assign ( targetFolder , folder , {
0 commit comments