FlamechartStackLayerView Class — react Architecture
Architecture documentation for the FlamechartStackLayerView class in FlamechartView.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD 1c41caa2_9be5_5d0b_7a2d_ee4e7e896fab["FlamechartStackLayerView"] d08702f1_e022_2394_00ee_ac0a9c33e2de["FlamechartView.js"] 1c41caa2_9be5_5d0b_7a2d_ee4e7e896fab -->|defined in| d08702f1_e022_2394_00ee_ac0a9c33e2de ba8a3f6a_b537_63fc_e5a1_452ad3c407fc["constructor()"] 1c41caa2_9be5_5d0b_7a2d_ee4e7e896fab -->|method| ba8a3f6a_b537_63fc_e5a1_452ad3c407fc 925f2764_883a_25b2_9c11_7fb9f6196511["desiredSize()"] 1c41caa2_9be5_5d0b_7a2d_ee4e7e896fab -->|method| 925f2764_883a_25b2_9c11_7fb9f6196511 489ed209_81ca_8846_edcc_5c7d0945ab8b["setHoveredFlamechartStackFrame()"] 1c41caa2_9be5_5d0b_7a2d_ee4e7e896fab -->|method| 489ed209_81ca_8846_edcc_5c7d0945ab8b a2777e3e_5de8_64fd_2831_e7d1431e9806["draw()"] 1c41caa2_9be5_5d0b_7a2d_ee4e7e896fab -->|method| a2777e3e_5de8_64fd_2831_e7d1431e9806 2048ceb7_6a90_62bc_935c_4b6ddcb44285["_handleMouseMove()"] 1c41caa2_9be5_5d0b_7a2d_ee4e7e896fab -->|method| 2048ceb7_6a90_62bc_935c_4b6ddcb44285 29bdc2a3_2ebc_c032_b444_98a10af67b95["handleInteraction()"] 1c41caa2_9be5_5d0b_7a2d_ee4e7e896fab -->|method| 29bdc2a3_2ebc_c032_b444_98a10af67b95
Relationship Graph
Source Code
packages/react-devtools-timeline/src/content-views/FlamechartView.js lines 74–270
class FlamechartStackLayerView extends View {
/** Layer to display */
_stackLayer: FlamechartStackLayer;
/** A set of `stackLayer`'s frames, for efficient lookup. */
_stackFrameSet: Set<FlamechartStackFrame>;
_internalModuleSourceToRanges: InternalModuleSourceToRanges;
_intrinsicSize: Size;
_hoveredStackFrame: FlamechartStackFrame | null = null;
_onHover: ((node: FlamechartStackFrame | null) => void) | null = null;
constructor(
surface: Surface,
frame: Rect,
stackLayer: FlamechartStackLayer,
internalModuleSourceToRanges: InternalModuleSourceToRanges,
duration: number,
) {
super(surface, frame);
this._stackLayer = stackLayer;
this._stackFrameSet = new Set(stackLayer);
this._internalModuleSourceToRanges = internalModuleSourceToRanges;
this._intrinsicSize = {
width: duration,
height: FLAMECHART_FRAME_HEIGHT,
};
}
desiredSize(): Size {
return this._intrinsicSize;
}
setHoveredFlamechartStackFrame(
hoveredStackFrame: FlamechartStackFrame | null,
) {
if (this._hoveredStackFrame === hoveredStackFrame) {
return; // We're already hovering over this frame
}
// Only care about frames displayed by this view.
const stackFrameToSet =
hoveredStackFrame && this._stackFrameSet.has(hoveredStackFrame)
? hoveredStackFrame
: null;
if (this._hoveredStackFrame === stackFrameToSet) {
return; // Resulting state is unchanged
}
this._hoveredStackFrame = stackFrameToSet;
this.setNeedsDisplay();
}
draw(context: CanvasRenderingContext2D) {
const {
frame,
_stackLayer,
_hoveredStackFrame,
_intrinsicSize,
visibleArea,
} = this;
context.fillStyle = COLORS.PRIORITY_BACKGROUND;
context.fillRect(
visibleArea.origin.x,
visibleArea.origin.y,
visibleArea.size.width,
visibleArea.size.height,
);
const scaleFactor = positioningScaleFactor(_intrinsicSize.width, frame);
for (let i = 0; i < _stackLayer.length; i++) {
const stackFrame = _stackLayer[i];
const {name, timestamp, duration} = stackFrame;
const width = durationToWidth(duration, scaleFactor);
if (width < 1) {
continue; // Too small to render at this zoom level
}
Domain
Source
Frequently Asked Questions
What is the FlamechartStackLayerView class?
FlamechartStackLayerView is a class in the react codebase, defined in packages/react-devtools-timeline/src/content-views/FlamechartView.js.
Where is FlamechartStackLayerView defined?
FlamechartStackLayerView is defined in packages/react-devtools-timeline/src/content-views/FlamechartView.js at line 74.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free