@@ -168,7 +168,7 @@ let allAtomsRelationship = [];
168
168
*/
169
169
// This runs after every Fiber commit. It creates a new snapshot
170
170
171
- let recoilobj = { } ;
171
+ let recoilObj = { } ;
172
172
173
173
function createTree (
174
174
currentFiber : Fiber ,
@@ -196,26 +196,21 @@ function createTree(
196
196
treeBaseDuration,
197
197
} = currentFiber ;
198
198
199
- if (
200
- typeof currentFiber . elementType === 'function' &&
201
- currentFiber . elementType . name === 'RecoilRoot'
202
- ) {
203
- // console.log(currentFiber.memoizedState.next.memoizedState.current.getState())
204
- }
205
-
199
+ //Checks Recoil Atom and Selector Relationships
206
200
if (
207
201
currentFiber . memoizedState &&
208
202
currentFiber . memoizedState . next &&
209
203
currentFiber . memoizedState . next . memoizedState &&
210
- currentFiber . memoizedState . next . memoizedState . deps
204
+ currentFiber . memoizedState . next . memoizedState . deps &&
205
+ isRecoil
211
206
) {
212
- // console.log(currentFiber)
213
207
let pointer = currentFiber . memoizedState . next ;
214
208
215
- while ( pointer !== null ) {
216
- if ( ! Array . isArray ( pointer . memoizedState ) ) {
217
- let componentName = currentFiber . elementType . name ;
218
- let atomName = pointer . memoizedState . deps [ 0 ] [ 'key' ] ;
209
+ //pointer helps us find multiple states which are linked as a linkedlist
210
+ while ( pointer !== null ) {
211
+ if ( ! Array . isArray ( pointer . memoizedState ) ) {
212
+ let componentName = currentFiber . elementType . name
213
+ let atomName = pointer . memoizedState . deps [ 0 ] [ 'key' ] ;
219
214
allAtomsRelationship . push ( [
220
215
atomName ,
221
216
componentName ,
@@ -229,24 +224,21 @@ function createTree(
229
224
let getState = currentFiber . memoizedState . next . memoizedState . deps [ 1 ] . current . getState ( )
230
225
. graphsByVersion ;
231
226
232
- getState . entries ( )
233
- . forEach ( ( value ) => {
234
- value [ 1 ] . nodeDeps . entries ( )
235
- . forEach ( ( obj ) => {
236
- if ( ! recoilobj [ obj [ 0 ] ] ) {
237
- recoilobj [ obj [ 0 ] ] = [ ]
238
- }
239
- obj [ 1 ] . values ( )
240
- . forEach ( ( ( selector ) => {
241
- if ( ! recoilobj [ obj [ 0 ] ] . includes ( selector ) ) {
242
- recoilobj [ obj [ 0 ] ] . push ( selector )
243
- }
244
- } ) )
245
- } )
246
- } )
227
+ getState . entries ( ) . forEach ( ( value ) => {
228
+ value [ 1 ] . nodeDeps . entries ( ) . forEach ( ( obj ) => {
229
+ if ( ! recoilObj [ obj [ 0 ] ] ) {
230
+ recoilObj [ obj [ 0 ] ] = [ ] ;
247
231
}
248
- console . log ( recoilobj )
249
- }
232
+ obj [ 1 ] . values ( ) . forEach ( ( selector ) => {
233
+ if ( ! recoilObj [ obj [ 0 ] ] . includes ( selector ) ) {
234
+ recoilObj [ obj [ 0 ] ] . push ( selector ) ;
235
+ }
236
+ } ) ;
237
+ } ) ;
238
+ } ) ;
239
+ }
240
+
241
+ }
250
242
251
243
let newState : any | { hooksState ?: any [ ] } = { } ;
252
244
let componentData : {
0 commit comments