@@ -10,14 +10,14 @@ import Modal from 'mo/components/dialog';
10
10
const confirm = Modal . confirm ;
11
11
12
12
export interface IFolderTreeController {
13
- readonly onSelectFile ?: ( file : ITreeNodeItem ) => void ;
13
+ readonly onSelectFile ?: ( file : ITreeNodeItem , isAuto ?: boolean ) => void ;
14
14
readonly onSelectTree ?: ( id : number ) => void ;
15
15
readonly onDropTree ?: ( treeNode : ITreeNodeItem [ ] ) => void ;
16
16
readonly onClickContextMenu ?: (
17
17
e : React . MouseEvent ,
18
18
item : IMenuItem ,
19
19
node : ITreeNodeItem ,
20
- callback ?: Function
20
+ events ?: Object
21
21
) => void ;
22
22
readonly filterContextMenu ?: (
23
23
menus : IMenuItem [ ] ,
@@ -36,7 +36,7 @@ export class FolderTreeController
36
36
37
37
private initView ( ) { }
38
38
39
- public readonly onSelectFile = ( file : ITreeNodeItem ) => {
39
+ public readonly onSelectFile = ( file : ITreeNodeItem , isAuto ?: boolean ) => {
40
40
const tabData = {
41
41
...file ,
42
42
id : `${ file . id } ` ,
@@ -48,7 +48,21 @@ export class FolderTreeController
48
48
} ,
49
49
breadcrumb : [ { id : `${ file . id } ` , name : 'editor.js' } ] ,
50
50
} ;
51
- editorService . open ( tabData ) ;
51
+ if ( isAuto ) {
52
+ // 更新文件自动回调
53
+ const editorState = editorService . getState ( ) ;
54
+
55
+ const { id, data = [ ] } = editorState ?. current || { } ;
56
+ const tabId = file . id ;
57
+ const index = data ?. findIndex ( tab => tab . id == tabId ) ;
58
+ if ( index > - 1 ) {
59
+ if ( id ) editorService . updateTab ( tabData , id )
60
+ } else {
61
+ editorService . open ( tabData ) ;
62
+ }
63
+ } else {
64
+ editorService . open ( tabData ) ;
65
+ }
52
66
} ;
53
67
54
68
public onSelectTree = ( id : number ) => {
@@ -63,14 +77,15 @@ export class FolderTreeController
63
77
e : React . MouseEvent ,
64
78
item : IMenuItem ,
65
79
node : ITreeNodeItem ,
66
- callback ?: Function
80
+ events ?: Object
67
81
) => {
68
82
const menuId = item . id ;
69
83
const { id : nodeId , name } = node as any ;
70
84
switch ( menuId ) {
71
85
case 'rename' : {
72
86
explorerService . rename ( nodeId , ( ) => {
73
- if ( callback ) callback ( ) ;
87
+ events ?. [ 'setValue' ] ( name ) ;
88
+ events ?. [ 'onFocus' ] ( ) ;
74
89
} ) ;
75
90
break ;
76
91
}
@@ -91,13 +106,13 @@ export class FolderTreeController
91
106
}
92
107
case 'newFile' : {
93
108
explorerService . newFile ( nodeId , ( ) => {
94
- if ( callback ) callback ( ) ;
109
+ events ?. [ 'onFocus' ] ( ) ;
95
110
} ) ;
96
111
break ;
97
112
}
98
113
case 'newFolder' : {
99
114
explorerService . newFolder ( nodeId , ( ) => {
100
- if ( callback ) callback ( ) ;
115
+ events ?. [ 'onFocus' ] ( ) ;
101
116
} ) ;
102
117
break ;
103
118
}
0 commit comments