@@ -202,22 +202,24 @@ function createTree(
202
202
currentFiber . memoizedState . next &&
203
203
currentFiber . memoizedState . next . memoizedState &&
204
204
currentFiber . memoizedState . next . memoizedState . deps &&
205
- isRecoil
205
+ isRecoil &&
206
+ currentFiber . tag !== 15
206
207
) {
207
- let pointer = currentFiber . memoizedState . next ;
208
208
209
- //pointer helps us find multiple states which are linked as a linkedlist
209
+ let pointer = currentFiber . memoizedState . next ;
210
+ let componentName = currentFiber . elementType . name
211
+
212
+ if ( ! recoilObj [ componentName ] ) {
213
+ recoilObj [ componentName ] = [ ] ;
210
214
while ( pointer !== null ) {
211
- if ( ! Array . isArray ( pointer . memoizedState ) ) {
212
- let componentName = currentFiber . elementType . name
213
- let atomName = pointer . memoizedState . deps [ 0 ] [ 'key' ] ;
214
- allAtomsRelationship . push ( [
215
- atomName ,
216
- componentName ,
217
- 'atoms and components' ,
218
- ] ) ;
215
+ if ( ! Array . isArray ( pointer . memoizedState ) ) {
216
+ let atomName = pointer . memoizedState . deps [ 0 ] [ 'key' ] ;
217
+ recoilObj [ componentName ] . push (
218
+ atomName ,
219
+ ) ;
220
+ }
221
+ pointer = pointer . next ;
219
222
}
220
- pointer = pointer . next ;
221
223
}
222
224
223
225
if ( currentFiber . memoizedState . next . memoizedState . deps [ 1 ] . current ) {
@@ -237,7 +239,6 @@ function createTree(
237
239
} ) ;
238
240
} ) ;
239
241
}
240
-
241
242
}
242
243
243
244
let newState : any | { hooksState ?: any [ ] } = { } ;
0 commit comments