@@ -26,6 +26,9 @@ interface State {
26
26
init : ( data : Record < string , FileOrFolderMixedState > , logs ?: LogItem [ ] ) => void ;
27
27
getToLocalFileList : ( ) => FileOrFolderMixedState [ ] ;
28
28
getToRemoteFileList : ( ) => FileOrFolderMixedState [ ] ;
29
+ getAllCheckedFileList : ( ) => string [ ] ;
30
+ getToLocalFileListFlat : ( ) => FileOrFolderMixedState [ ] ;
31
+ getToRemoteFileListFlat : ( ) => FileOrFolderMixedState [ ] ;
29
32
existToLocalFile : ( path : string ) => boolean ;
30
33
existToRemoteFile : ( path : string ) => boolean ;
31
34
updateSelectedToLocalFileList : ( list : string [ ] ) => string [ ] ;
@@ -86,13 +89,28 @@ const useStore = create<State>()((set, get) => ({
86
89
toRemoteSelected : [ ] ,
87
90
} )
88
91
} ,
92
+ getToLocalFileListFlat : ( ) => {
93
+ const obj = get ( ) . record ;
94
+ const list = Object . keys ( obj )
95
+ . filter ( key => obj [ key ] . syncType === 'TOLOCAL' )
96
+ . map ( key => obj [ key ] )
97
+ return list
98
+ } ,
89
99
getToLocalFileList : ( ) => {
90
100
const obj = get ( ) . record ;
91
101
const list = Object . keys ( obj )
92
102
. filter ( key => obj [ key ] . syncType === 'TOLOCAL' )
93
103
. map ( key => obj [ key ] )
94
104
return convertList ( list ) as FileOrFolderMixedState [ ]
95
105
} ,
106
+ getToRemoteFileListFlat : ( ) => {
107
+ const obj = get ( ) . record ;
108
+ const list = Object . keys ( obj )
109
+ . filter ( key => obj [ key ] . syncType === 'TOREMOTE' )
110
+ . map ( key => obj [ key ] )
111
+
112
+ return list
113
+ } ,
96
114
getToRemoteFileList : ( ) => {
97
115
const obj = get ( ) . record ;
98
116
const list = Object . keys ( obj )
@@ -102,6 +120,10 @@ const useStore = create<State>()((set, get) => ({
102
120
return convertList ( list ) as FileOrFolderMixedState [ ]
103
121
} ,
104
122
123
+ getAllCheckedFileList : ( ) => {
124
+ return [ ...get ( ) . toLocalSelected , ...get ( ) . toRemoteSelected ]
125
+ } ,
126
+
105
127
existToLocalFile : ( filePath : string ) => {
106
128
const obj = get ( ) . record ;
107
129
return ! ! Object . keys ( obj ) . filter ( key => obj [ key ] . syncType === 'TOLOCAL' ) . find ( key => key === filePath )
@@ -114,14 +136,16 @@ const useStore = create<State>()((set, get) => ({
114
136
} ,
115
137
116
138
updateSelectedToLocalFileList : ( list : string [ ] ) => {
139
+ const toRemoteList = get ( ) . getToLocalFileListFlat ( ) ;
117
140
set ( {
118
- toLocalSelected : list || [ ]
141
+ toLocalSelected : ( list || [ ] ) . filter ( ( p : string ) => toRemoteList . find ( item => item . key === p ) )
119
142
} )
120
143
return get ( ) . toLocalSelected
121
144
} ,
122
145
updateSelectedToRemoteFileList : ( list : string [ ] ) => {
146
+ const toRemoteList = get ( ) . getToRemoteFileListFlat ( ) ;
123
147
set ( {
124
- toRemoteSelected : list || [ ]
148
+ toRemoteSelected : ( list || [ ] ) . filter ( ( p : string ) => toRemoteList . find ( item => item . key === p ) )
125
149
} )
126
150
return get ( ) . toRemoteSelected
127
151
} ,
0 commit comments