Skip to content

Commit 08fa38d

Browse files
committed
(add) Parsing algorithm to extract DOM nodes for Recoil for both children and sibling properties of React Fiber
Co-authored-by Sanjay Lavingia <[email protected]>
1 parent 5af0eef commit 08fa38d

File tree

1 file changed

+32
-22
lines changed

1 file changed

+32
-22
lines changed

src/backend/linkFiber.ts

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -380,37 +380,47 @@ function createTree(
380380
if (componentFound || newState === 'stateless') {
381381
if (fromSibling) {
382382

383-
console.log(currentFiber)
384-
385-
386-
if(currentFiber.elementType.name){
387-
if(!recoilStateNode[currentFiber.elementType.name]){
388-
recoilStateNode[currentFiber.elementType.name] = [];
383+
if(isRecoil){
384+
if(currentFiber.elementType.name){
385+
if(!recoilStateNode[currentFiber.elementType.name]){
386+
recoilStateNode[currentFiber.elementType.name] = [];
387+
}
389388
}
389+
let pointer = currentFiber
390+
while(pointer !== null){
391+
if(pointer.stateNode !== null){
392+
rtid = "fromLinkFiber" + rtidCounter++
393+
recoilStateNode[currentFiber.elementType.name].push(pointer.stateNode)
394+
pointer.stateNode.setAttribute("id", rtid)
395+
}
396+
397+
pointer = pointer.child
398+
}
390399
}
391-
392-
let pointer = currentFiber
393-
while(pointer !== null){
394-
if(pointer.stateNode !== null){
395-
rtid = "fromLinkFiber" + rtidCounter++
396-
recoilStateNode[currentFiber.elementType.name].push(pointer.stateNode)}
397-
pointer.stateNode.setAttribute("id", rtid)
398-
pointer = pointer.child
399-
}
400-
401-
// console.log(currentFiber)
402-
403-
// currentFiber.child.stateNode.setAttribute("id", rtid);
404400
newNode = tree.addSibling(
405401
newState,
406402
elementType ? elementType.name : 'nameless',
407403
componentData,
408404
rtid
409405
);
410406
} else {
411-
// console.log(currentFiber)
412-
rtid = "fromLinkFiber" + rtidCounter++
413-
// currentFiber.child.stateNode.setAttribute("id", rtid);
407+
408+
if(isRecoil){
409+
if(currentFiber.elementType.name){
410+
if(!recoilStateNode[currentFiber.elementType.name]){
411+
recoilStateNode[currentFiber.elementType.name] = [];
412+
}
413+
}
414+
let pointer = currentFiber
415+
while(pointer !== null){
416+
if(pointer.stateNode !== null){
417+
rtid = "fromLinkFiber" + rtidCounter++
418+
recoilStateNode[currentFiber.elementType.name].push(pointer.stateNode)
419+
pointer.stateNode.setAttribute("id", rtid)
420+
}
421+
pointer = pointer.child
422+
}
423+
}
414424
newNode = tree.addChild(
415425
newState,
416426
elementType ? elementType.name : 'nameless',

0 commit comments

Comments
 (0)