diff --git a/fixtures/fiber-debugger/src/App.js b/fixtures/fiber-debugger/src/App.js index 87435ec5e3..a41fa0abba 100644 --- a/fixtures/fiber-debugger/src/App.js +++ b/fixtures/fiber-debugger/src/App.js @@ -42,6 +42,10 @@ class App extends Component { return: false, fx: false, }, + graphSettings: { + rankdir: 'TB', + trackActive: true, + }, }; } @@ -158,7 +162,11 @@ class App extends Component {
{fibers && - + }
- this.setState({currentStep: Number(e.target.value)})} - /> -

- Step - {' '} - {currentStep} - : - {' '} - {friendlyAction} - {' '} - ( - - Edit - - ) -

- {stage &&

Stage: {stage}

} - {Object.keys(this.state.show).map(key => ( - - ))} +
+ + this.setState({currentStep: Number(e.target.value)})} + /> +

+ Step + {' '} + {currentStep} + : + {' '} + {friendlyAction} + {' '} + ( + + Edit + + ) +

+ {stage &&

Stage: {stage}

} + {Object.keys(this.state.show).map(key => ( + + ))} +
+
+
Graph Settings
+

+ +

+

+ +

+
); diff --git a/fixtures/fiber-debugger/src/Fibers.js b/fixtures/fiber-debugger/src/Fibers.js index aff5748003..84be5bd840 100644 --- a/fixtures/fiber-debugger/src/Fibers.js +++ b/fixtures/fiber-debugger/src/Fibers.js @@ -15,15 +15,17 @@ function getFiberColor(fibers, id) { } function Graph(props) { + const {rankdir, trackActive} = props.settings; var g = new dagre.graphlib.Graph(); g.setGraph({ width: 1000, height: 1000, nodesep: 50, edgesep: 150, - ranksep: 150, + ranksep: 100, marginx: 100, marginy: 100, + rankdir, }); var edgeLabels = {}; @@ -63,8 +65,8 @@ function Graph(props) { .map(v => g.node(v)) .find(node => node.label.props.isActive); const [winX, winY] = [window.innerWidth / 2, window.innerHeight / 2]; - var focusDx = activeNode ? winX - activeNode.x : 0; - var focusDy = activeNode ? winY - activeNode.y : 0; + var focusDx = trackActive && activeNode ? winX - activeNode.x : 0; + var focusDy = trackActive && activeNode ? winY - activeNode.y : 0; var nodes = g.nodes().map(v => { var node = g.node(v); @@ -250,7 +252,7 @@ function formatPriority(priority) { } } -export default function Fibers({fibers, show, ...rest}) { +export default function Fibers({fibers, show, graphSettings, ...rest}) { const items = Object.keys(fibers.descriptions).map( id => fibers.descriptions[id] ); @@ -274,11 +276,16 @@ export default function Fibers({fibers, show, ...rest}) { ...rest.style, transform: null, }}> - + {items.map(fiber => [
Committed } + {fiber.effectTag && [ +
, + Effect: {fiber.effectTag}, + ]}
, fiber.child && diff --git a/fixtures/fiber-debugger/src/describeFibers.js b/fixtures/fiber-debugger/src/describeFibers.js index 25035429b1..cee652af65 100644 --- a/fixtures/fiber-debugger/src/describeFibers.js +++ b/fixtures/fiber-debugger/src/describeFibers.js @@ -37,6 +37,23 @@ function getFriendlyTag(tag) { } } +function getFriendlyEffect(effectTag) { + const effects = { + 1: 'Performed Work', + 2: 'Placement', + 4: 'Update', + 8: 'Deletion', + 16: 'Content reset', + 32: 'Callback', + 64: 'Err', + 128: 'Ref', + }; + return Object.keys(effects) + .filter(flag => flag & effectTag) + .map(flag => effects[flag]) + .join(' & '); +} + export default function describeFibers(rootFiber, workInProgress) { let descriptions = {}; function acknowledgeFiber(fiber) { @@ -55,6 +72,7 @@ export default function describeFibers(rootFiber, workInProgress) { ...fiber, id: id, tag: getFriendlyTag(fiber.tag), + effectTag: getFriendlyEffect(fiber.effectTag), type: fiber.type && '<' + (fiber.type.name || fiber.type) + '>', stateNode: `[${typeof fiber.stateNode}]`, return: acknowledgeFiber(fiber.return),