File tree Expand file tree Collapse file tree 3 files changed +21
-20
lines changed
Expand file tree Collapse file tree 3 files changed +21
-20
lines changed Original file line number Diff line number Diff line change 11import { ITreeItem , ITreeItemWithParent } from '../types/ITreeItem' ;
22import { TaskModelProxy } from '../modules/tasks/models/TaskModelProxy' ;
33import TaskModel from '../modules/tasks/models/TaskModel' ;
4+ import TaskFactory from '../modules/tasks/TaskFactory' ;
45
56const TreeModelHelper = {
6- getPathToNode < T extends ITreeItemWithParent > ( node : T ) {
7+ getPathToNode < T extends ITreeItemWithParent = ITreeItemWithParent > ( node : T ) {
78 const result : string [ ] = [ ] ;
89
9- let ptrNode = node ;
10+ let ptrNode : T | undefined = node ;
1011 while ( ptrNode ) {
1112 result . unshift ( ptrNode . key ) ;
1213 // @ts -ignore
@@ -26,14 +27,10 @@ const TreeModelHelper = {
2627
2728 if ( keysToTask . length === 1 ) {
2829 const source = sourceChildren . find ( ( node ) => node . key === keysToTask [ 0 ] ) ;
29- destChildren . push (
30- // @ts -ignore
31- new TaskModelProxy ( {
32- ...source ,
33- children : [ ] ,
34- } )
35- ) ;
36- return true ;
30+ if ( source ) {
31+ destChildren . push ( TaskFactory . createTaskModelProxy ( source ) ) ;
32+ }
33+ return ! ! source ;
3734 }
3835
3936 do {
@@ -83,12 +80,7 @@ const TreeModelHelper = {
8380 }
8481
8582 while ( true ) {
86- // @ts -ignore
87- let copy = new TaskModelProxy ( {
88- ...source ,
89- children : [ ] ,
90- } ) ;
91-
83+ const copy = TaskFactory . createTaskModelProxy ( source ) ;
9284 dest . push ( copy ) ;
9385
9486 keyIdx ++ ;
Original file line number Diff line number Diff line change @@ -16,8 +16,8 @@ export default class TaskFactory extends AbstractFactory {
1616 return newData ;
1717 }
1818
19- createTaskProxy ( taskModel : TaskModel ) : TaskModelProxy {
20- const target = new TaskModelProxy ( taskModel ) ;
19+ static createTaskModelProxy ( taskModel : TaskModel ) : TaskModelProxy {
20+ const target = new TaskModelProxy ( taskModel , [ ] ) ;
2121
2222 return new Proxy < TaskModelProxy > ( target , taskModelProxyHandler ) ;
2323 }
Original file line number Diff line number Diff line change @@ -3,6 +3,12 @@ import TaskModel from './TaskModel';
33export class TaskModelProxy extends TaskModel {
44 origin : TaskModel | null = null ;
55 children : TaskModelProxy [ ] = [ ] ;
6+
7+ constructor ( originTaskModel : TaskModel , children : TaskModelProxy [ ] ) {
8+ super ( originTaskModel ) ;
9+ this . origin = originTaskModel ;
10+ this . children = children ;
11+ }
612}
713
814export const taskModelProxyHandler : ProxyHandler < TaskModelProxy > = {
@@ -19,8 +25,11 @@ export const taskModelProxyHandler: ProxyHandler<TaskModelProxy> = {
1925 }
2026 // @ts -ignore
2127 target [ prop ] = value ;
22- // @ts -ignore
23- target . origin [ prop ] = value ;
28+
29+ if ( prop !== 'expanded' ) {
30+ // @ts -ignore
31+ target . origin [ prop ] = value ;
32+ }
2433
2534 return true ;
2635 } ,
You can’t perform that action at this time.
0 commit comments