@@ -52,6 +52,14 @@ export interface IFolderTreeService extends Component<IFolderTree> {
52
52
* Get the context menus for folder
53
53
*/
54
54
getFolderContextMenu : ( ) => IMenuItemProps [ ] ;
55
+ /**
56
+ * Get the expandKeys in folderTree
57
+ */
58
+ getExpandKeys : ( ) => UniqueId [ ] ;
59
+ /**
60
+ * Set the expandKeys for folderTree
61
+ */
62
+ setExpandKeys : ( expandKeys : UniqueId [ ] ) => void ;
55
63
/**
56
64
* Active specific node,
57
65
* or unactive any node in folder tree
@@ -138,6 +146,11 @@ export interface IFolderTreeService extends Component<IFolderTree> {
138
146
callback : ( treeNode : IFolderTreeNodeProps ) => void
139
147
) => void
140
148
) : void ;
149
+ /**
150
+ * Callback for expanding tree node
151
+ * @param callback
152
+ */
153
+ onExpandKeys ( callback : ( expandKeys : UniqueId [ ] ) => void ) : void ;
141
154
/**
142
155
* Toggle whether to enable sorting, which is disabled by default.
143
156
*/
@@ -226,6 +239,17 @@ export class FolderTreeService
226
239
this . folderContextMenu = menus ;
227
240
}
228
241
242
+ public getExpandKeys ( ) {
243
+ return this . state . folderTree ?. expandKeys || [ ] ;
244
+ }
245
+
246
+ public setExpandKeys ( expandKeys : UniqueId [ ] ) {
247
+ const { folderTree } = this . state ;
248
+ this . setState ( {
249
+ folderTree : { ...folderTree , expandKeys } ,
250
+ } ) ;
251
+ }
252
+
229
253
private setCurrentFolderLocation ( data : IFolderTreeNodeProps , id : UniqueId ) {
230
254
const children = data . children ;
231
255
const { tree } = this . getCurrentRootFolderInfo ( id ) ;
@@ -513,6 +537,10 @@ export class FolderTreeService
513
537
this . subscribe ( FolderTreeEvent . onLoadData , callback ) ;
514
538
} ;
515
539
540
+ public onExpandKeys = ( callback : ( expandKeys : UniqueId [ ] ) => void ) => {
541
+ this . subscribe ( FolderTreeEvent . onExpandKeys , callback ) ;
542
+ } ;
543
+
516
544
public toggleAutoSort ( ) {
517
545
this . setState ( { autoSort : ! this . state . autoSort } ) ;
518
546
}
0 commit comments