Skip to content

Commit ff8537e

Browse files
committed
Added pseudocode
1 parent 265008f commit ff8537e

File tree

1 file changed

+23
-31
lines changed

1 file changed

+23
-31
lines changed

src/backend/linkFiber.ts

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ let allAtomsRelationship = [];
168168
*/
169169
// This runs after every Fiber commit. It creates a new snapshot
170170

171-
let recoilobj = {};
171+
let recoilObj = {};
172172

173173
function createTree(
174174
currentFiber: Fiber,
@@ -196,26 +196,21 @@ function createTree(
196196
treeBaseDuration,
197197
} = currentFiber;
198198

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
206200
if (
207201
currentFiber.memoizedState &&
208202
currentFiber.memoizedState.next &&
209203
currentFiber.memoizedState.next.memoizedState &&
210-
currentFiber.memoizedState.next.memoizedState.deps
204+
currentFiber.memoizedState.next.memoizedState.deps &&
205+
isRecoil
211206
) {
212-
// console.log(currentFiber)
213207
let pointer = currentFiber.memoizedState.next;
214208

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'];
219214
allAtomsRelationship.push([
220215
atomName,
221216
componentName,
@@ -229,24 +224,21 @@ function createTree(
229224
let getState = currentFiber.memoizedState.next.memoizedState.deps[1].current.getState()
230225
.graphsByVersion;
231226

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]] = [];
247231
}
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+
}
250242

251243
let newState: any | { hooksState?: any[] } = {};
252244
let componentData: {

0 commit comments

Comments
 (0)