@@ -22,6 +22,14 @@ export function getCurrentFC() {
22
22
return currentFC ;
23
23
}
24
24
25
+ function getNewFC ( ) : any {
26
+ return {
27
+ signals : new Set ( ) ,
28
+ cleanup : [ ] ,
29
+ effects : new Set ( ) ,
30
+ } ;
31
+ }
32
+
25
33
export function runAllEffects ( FC : Fiber ) {
26
34
if ( fcMap . has ( FC ) ) {
27
35
const fcData = fcMap . get ( FC ) ! ;
@@ -36,64 +44,46 @@ export function cleanUp(fn: Function) {
36
44
if ( currentFC ) {
37
45
// console.log(currentFC, fcMap.has(currentFC));
38
46
if ( fcMap . has ( currentFC ) ) {
39
- const fcData = fcMap . get ( currentFC ) ! ;
40
-
41
- fcData . cleanup . push ( fn ) ;
47
+ fcMap . get ( currentFC ) ! . cleanup . push ( fn ) ;
42
48
} else {
43
- fcMap . set ( currentFC , {
44
- signals : new Set ( ) ,
45
- cleanup : [ fn ] ,
46
- effects : new Set ( ) ,
47
- } ) ;
49
+ let newFC = getNewFC ( ) ;
50
+ newFC . cleanup . push ( fn ) ;
51
+ fcMap . set ( currentFC , newFC ) ;
48
52
}
49
53
}
50
54
}
51
55
export function cleanUpWFiber ( fn : Function , fiber : Fiber ) {
52
56
if ( fiber ) {
53
57
// console.log(currentFC, fcMap.has(currentFC));
54
58
if ( fcMap . has ( fiber ) ) {
55
- const fcData = fcMap . get ( fiber ) ! ;
56
-
57
- fcData . cleanup . push ( fn ) ;
59
+ fcMap . get ( fiber ) ! . cleanup . push ( fn ) ;
58
60
} else {
59
- fcMap . set ( fiber , {
60
- signals : new Set ( ) ,
61
- cleanup : [ fn ] ,
62
- effects : new Set ( ) ,
63
- } ) ;
61
+ let newFC = getNewFC ( ) ;
62
+ newFC . cleanup . push ( fn ) ;
63
+ fcMap . set ( fiber , newFC ) ;
64
64
}
65
65
}
66
66
}
67
67
68
68
export function addEffect ( fn : Function ) {
69
69
if ( currentFC ) {
70
70
if ( fcMap . has ( currentFC ) ) {
71
- const fcData = fcMap . get ( currentFC ) ! ;
72
- fcData . effects . add ( fn ) ;
71
+ fcMap . get ( currentFC ) ! . effects . add ( fn ) ;
73
72
} else {
74
- const effects = new Set < Function > ( ) ;
75
- effects . add ( fn ) ;
76
- fcMap . set ( currentFC , {
77
- signals : new Set ( ) ,
78
- cleanup : [ ] ,
79
- effects : effects ,
80
- } ) ;
73
+ let newFC = getNewFC ( ) ;
74
+ newFC . effects . add ( fn ) ;
75
+ fcMap . set ( currentFC , newFC ) ;
81
76
}
82
77
}
83
78
}
84
79
export function addSignal ( signal : BaseSignal < any > ) {
85
80
if ( currentFC ) {
86
81
if ( fcMap . has ( currentFC ) ) {
87
- const fcData = fcMap . get ( currentFC ) ! ;
88
- fcData . signals . add ( signal ) ;
82
+ fcMap . get ( currentFC ) ! . signals . add ( signal ) ;
89
83
} else {
90
- const signals = new Set < BaseSignal < any > > ( ) ;
91
- signals . add ( signal ) ;
92
- fcMap . set ( currentFC , {
93
- signals : signals ,
94
- cleanup : [ ] ,
95
- effects : new Set ( ) ,
96
- } ) ;
84
+ let newFC = getNewFC ( ) ;
85
+ newFC . signals . add ( signal ) ;
86
+ fcMap . set ( currentFC , newFC ) ;
97
87
}
98
88
}
99
89
}
@@ -112,7 +102,7 @@ export function cleanUpFC(currentFC, props) {
112
102
113
103
for ( const effect of fcData . effects ) {
114
104
// @ts -expect-error
115
- if ( effect . __cleanup && typeof effect . __cleanup === "function" ) {
105
+ if ( effect . __cleanup ) {
116
106
// @ts -expect-error
117
107
effect . __cleanup ( ) ;
118
108
}
0 commit comments