6
6
IExplorerModel ,
7
7
} from 'mo/model/workbench/explorer' ;
8
8
import { ITreeNodeItem , FileType , FileTypes } from 'mo/components/tree' ;
9
+ import { searchById } from '../helper' ;
9
10
export interface IExplorerService extends Component < IExplorer > {
10
11
addPanel ( panel : IPanelItem | IPanelItem [ ] ) : void ;
11
12
createFile (
@@ -17,6 +18,8 @@ export interface IExplorerService extends Component<IExplorer> {
17
18
rename ( fileData : ITreeNodeItem , callback : Function ) : void ;
18
19
deleteFile ( fileData : ITreeNodeItem ) : void ;
19
20
onDropTree ( treeData : ITreeNodeItem [ ] ) : void ;
21
+
22
+ addFolder ( fileData ?: ITreeNodeItem ) : void ;
20
23
}
21
24
22
25
@singleton ( )
@@ -304,4 +307,35 @@ export class ExplorerService
304
307
} ) ,
305
308
} ) ;
306
309
} ;
310
+
311
+
312
+ // second version
313
+ // 考虑操作 tree 数据结构的方法抽离出一个 tree 类
314
+
315
+ public addFolder ( folder ) {
316
+ const { folderTree } = this . state ;
317
+ let next = [ ...folderTree ?. data ! ] ;
318
+ if ( Array . isArray ( folder ) ) {
319
+ next = next ?. concat ( folder ) ;
320
+ } else {
321
+ next ?. push ( folder ) ;
322
+ }
323
+ console . log ( 'next' , next )
324
+ this . setState ( {
325
+ folderTree : { ...folderTree , data : next }
326
+ } ) ;
327
+ }
328
+ // public deleteFolder(id) {
329
+ // const { folderTree } = this.state;
330
+ // let next = [...folderTree?.data!];
331
+ // if (Array.isArray(folder)) {
332
+ // next = next?.concat(folder);
333
+ // } else {
334
+ // next?.push(folder);
335
+ // }
336
+ // const current = searchById(id)
337
+ // this.setState({
338
+ // folderTree: { ...folderTree, data: next }
339
+ // });
340
+ // }
307
341
}
0 commit comments