mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Track parentID for ReactPerf
This commit is contained in:
@@ -50,20 +50,34 @@ var ReactComponentTreeDevtool = {
|
||||
updateTree(id, item => item.displayName = displayName);
|
||||
},
|
||||
|
||||
onSetChildren(id, childIDs) {
|
||||
childIDs.forEach(childID => {
|
||||
var childItem = tree[childID];
|
||||
expect(childItem).toBeDefined();
|
||||
expect(childItem.isComposite).toBeDefined();
|
||||
expect(childItem.displayName).toBeDefined();
|
||||
expect(childItem.childIDs || childItem.text).toBeDefined();
|
||||
onSetChildren(id, nextChildIDs) {
|
||||
var prevChildIDs;
|
||||
updateTree(id, item => {
|
||||
prevChildIDs = item.childIDs || [];
|
||||
item.childIDs = nextChildIDs;
|
||||
});
|
||||
|
||||
updateTree(id, item => item.childIDs = childIDs);
|
||||
prevChildIDs.forEach(prevChildID => {
|
||||
if (tree[prevChildID] && nextChildIDs.indexOf(prevChildID) === -1) {
|
||||
tree[prevChildID].parentID = null;
|
||||
}
|
||||
});
|
||||
|
||||
nextChildIDs.forEach(nextChildID => {
|
||||
var item = tree[nextChildID];
|
||||
expect(item).toBeDefined();
|
||||
expect(item.isComposite).toBeDefined();
|
||||
expect(item.displayName).toBeDefined();
|
||||
expect(item.childIDs || item.text).toBeDefined();
|
||||
|
||||
if (tree[nextChildID] && prevChildIDs.indexOf(nextChildID) === -1) {
|
||||
tree[nextChildID].parentID = id;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
onSetOwner(id, ownerDebugID) {
|
||||
updateTree(id, item => item.ownerDebugID = ownerDebugID);
|
||||
onSetOwner(id, ownerID) {
|
||||
updateTree(id, item => item.ownerID = ownerID);
|
||||
},
|
||||
|
||||
onSetText(id, text) {
|
||||
|
||||
@@ -36,22 +36,32 @@ describe('ReactComponentTreeDevtool', () => {
|
||||
ReactDebugTool.removeDevtool(ReactComponentTreeDevtool);
|
||||
});
|
||||
|
||||
function denormalizeTree(tree, rootID, includeOwner) {
|
||||
function denormalizeTree(
|
||||
tree,
|
||||
rootID,
|
||||
includeOwner = false,
|
||||
expectedParentID = null
|
||||
) {
|
||||
var item = tree[rootID];
|
||||
var result = {
|
||||
isComposite: item.isComposite,
|
||||
displayName: item.displayName,
|
||||
};
|
||||
|
||||
if (expectedParentID) {
|
||||
expect(item.parentID).toBe(expectedParentID);
|
||||
}
|
||||
|
||||
if (item.childIDs) {
|
||||
result.children = item.childIDs.map(childID =>
|
||||
denormalizeTree(tree, childID, includeOwner)
|
||||
denormalizeTree(tree, childID, includeOwner, rootID)
|
||||
);
|
||||
}
|
||||
if (item.text != null) {
|
||||
result.text = item.text;
|
||||
}
|
||||
if (includeOwner && item.ownerDebugID) {
|
||||
result.ownerDisplayName = tree[item.ownerDebugID].displayName;
|
||||
if (includeOwner && item.ownerID) {
|
||||
result.ownerDisplayName = tree[item.ownerID].displayName;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user