@@ -32,6 +32,36 @@ interface State {
32
32
clean : ( ) => void ;
33
33
}
34
34
35
+ function convertList ( ListSource : any [ ] ) {
36
+ const ListDest : any [ ] = [ ] ;
37
+
38
+ for ( let item of ListSource ) {
39
+ const keys = item . key . split ( '/' ) ;
40
+ let currentObj : any = ListDest ;
41
+
42
+ for ( let i = 0 ; i < keys . length ; i ++ ) {
43
+ const key = keys [ i ] ;
44
+
45
+ if ( ! currentObj . find ( ( obj : any ) => obj . key === key ) ) {
46
+ if ( i === keys . length - 1 ) {
47
+ currentObj . push ( {
48
+ ...item ,
49
+ title : key
50
+ } ) ;
51
+ } else {
52
+ const newObj : any = { key : key , title : key , children : [ ] } ;
53
+ currentObj . push ( newObj ) ;
54
+ currentObj = newObj . children ;
55
+ }
56
+ } else {
57
+ currentObj = currentObj . find ( ( obj : any ) => obj . key === key ) . children ;
58
+ }
59
+ }
60
+ }
61
+
62
+ return ListDest ;
63
+ }
64
+
35
65
const TouchedFileList = [
36
66
...RemoteFileTouchedDecisions ,
37
67
...LocalFileTouchedDecisions
@@ -61,8 +91,11 @@ const useStore = create<State>()((set, get) => ({
61
91
} ,
62
92
getToRemoteFileList : ( ) => {
63
93
const obj = get ( ) . record ;
64
- console . log ( 'get to remote data: ' , obj )
65
- return Object . keys ( obj ) . filter ( key => obj [ key ] . syncType === 'TOREMOTE' ) . map ( key => obj [ key ] )
94
+ const list = Object . keys ( obj )
95
+ . filter ( key => obj [ key ] . syncType === 'TOREMOTE' )
96
+ . map ( key => obj [ key ] )
97
+
98
+ return convertList ( list ) as FileOrFolderMixedState [ ]
66
99
} ,
67
100
68
101
updateSelectedToLocalFileList : ( list : string [ ] ) => {
0 commit comments