ThrownErrorsView Class — react Architecture
Architecture documentation for the ThrownErrorsView class in ThrownErrorsView.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD 2c3a6a4e_0c73_35ac_af62_6070bfc10612["ThrownErrorsView"] 54164963_cd24_4adc_3d98_1f5b00aa9db1["ThrownErrorsView.js"] 2c3a6a4e_0c73_35ac_af62_6070bfc10612 -->|defined in| 54164963_cd24_4adc_3d98_1f5b00aa9db1 51825277_7e9a_a528_c002_9451c2d3f7cf["constructor()"] 2c3a6a4e_0c73_35ac_af62_6070bfc10612 -->|method| 51825277_7e9a_a528_c002_9451c2d3f7cf 997945da_776c_ed82_a83f_e6f4652ba220["desiredSize()"] 2c3a6a4e_0c73_35ac_af62_6070bfc10612 -->|method| 997945da_776c_ed82_a83f_e6f4652ba220 df9c0cdd_3385_d3e0_0340_b790c0d94af7["setHoveredEvent()"] 2c3a6a4e_0c73_35ac_af62_6070bfc10612 -->|method| df9c0cdd_3385_d3e0_0340_b790c0d94af7 206c118a_a95b_2736_0a2c_50fcd6152f5e["_drawSingleThrownError()"] 2c3a6a4e_0c73_35ac_af62_6070bfc10612 -->|method| 206c118a_a95b_2736_0a2c_50fcd6152f5e f2dac41f_c6ba_b398_a87d_c07c5219fab2["draw()"] 2c3a6a4e_0c73_35ac_af62_6070bfc10612 -->|method| f2dac41f_c6ba_b398_a87d_c07c5219fab2 b54f8f29_d27e_011a_c427_25d53fdaa0d6["_handleMouseMove()"] 2c3a6a4e_0c73_35ac_af62_6070bfc10612 -->|method| b54f8f29_d27e_011a_c427_25d53fdaa0d6 1bfdb03c_42d6_0382_3024_7047540f0e44["handleInteraction()"] 2c3a6a4e_0c73_35ac_af62_6070bfc10612 -->|method| 1bfdb03c_42d6_0382_3024_7047540f0e44
Relationship Graph
Source Code
packages/react-devtools-timeline/src/content-views/ThrownErrorsView.js lines 42–241
export class ThrownErrorsView extends View {
_profilerData: TimelineData;
_intrinsicSize: Size;
_hoveredEvent: ThrownError | null = null;
onHover: ((event: ThrownError | null) => void) | null = null;
constructor(surface: Surface, frame: Rect, profilerData: TimelineData) {
super(surface, frame);
this._profilerData = profilerData;
this._intrinsicSize = {
width: this._profilerData.duration,
height: EVENT_ROW_HEIGHT_FIXED,
};
}
desiredSize(): Size {
return this._intrinsicSize;
}
setHoveredEvent(hoveredEvent: ThrownError | null) {
if (this._hoveredEvent === hoveredEvent) {
return;
}
this._hoveredEvent = hoveredEvent;
this.setNeedsDisplay();
}
/**
* Draw a single `ThrownError` as a circle in the canvas.
*/
_drawSingleThrownError(
context: CanvasRenderingContext2D,
rect: Rect,
thrownError: ThrownError,
baseY: number,
scaleFactor: number,
showHoverHighlight: boolean,
) {
const {frame} = this;
const {timestamp} = thrownError;
const x = timestampToPosition(timestamp, scaleFactor, frame);
const radius = REACT_EVENT_DIAMETER / 2;
const eventRect: Rect = {
origin: {
x: x - radius,
y: baseY,
},
size: {width: REACT_EVENT_DIAMETER, height: REACT_EVENT_DIAMETER},
};
if (!rectIntersectsRect(eventRect, rect)) {
return; // Not in view
}
const fillStyle = showHoverHighlight
? COLORS.REACT_THROWN_ERROR_HOVER
: COLORS.REACT_THROWN_ERROR;
const y = eventRect.origin.y + radius;
context.beginPath();
context.fillStyle = fillStyle;
context.arc(x, y, radius, 0, 2 * Math.PI);
context.fill();
}
draw(context: CanvasRenderingContext2D) {
const {
frame,
_profilerData: {thrownErrors},
_hoveredEvent,
visibleArea,
} = this;
context.fillStyle = COLORS.BACKGROUND;
context.fillRect(
visibleArea.origin.x,
visibleArea.origin.y,
visibleArea.size.width,
visibleArea.size.height,
Domain
Source
Frequently Asked Questions
What is the ThrownErrorsView class?
ThrownErrorsView is a class in the react codebase, defined in packages/react-devtools-timeline/src/content-views/ThrownErrorsView.js.
Where is ThrownErrorsView defined?
ThrownErrorsView is defined in packages/react-devtools-timeline/src/content-views/ThrownErrorsView.js at line 42.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free