@@ -44,6 +44,7 @@ import {
4444} from './view-base' ;
4545import {
4646 FlamechartView ,
47+ NativeEventsView ,
4748 ReactEventsView ,
4849 ReactMeasuresView ,
4950 TimeAxisMarkersView ,
@@ -126,6 +127,7 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
126127
127128 const surfaceRef = useRef ( new Surface ( ) ) ;
128129 const userTimingMarksViewRef = useRef ( null ) ;
130+ const nativeEventsViewRef = useRef ( null ) ;
129131 const reactEventsViewRef = useRef ( null ) ;
130132 const reactMeasuresViewRef = useRef ( null ) ;
131133 const flamechartViewRef = useRef ( null ) ;
@@ -176,6 +178,10 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
176178 topContentStack . addSubview ( userTimingMarksView ) ;
177179 }
178180
181+ const nativeEventsView = new NativeEventsView ( surface , defaultFrame , data ) ;
182+ nativeEventsViewRef . current = nativeEventsView ;
183+ topContentStack . addSubview ( nativeEventsView ) ;
184+
179185 const reactEventsView = new ReactEventsView ( surface , defaultFrame , data ) ;
180186 reactEventsViewRef . current = reactEventsView ;
181187 topContentStack . addSubview ( reactEventsView ) ;
@@ -299,7 +305,24 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
299305 if ( ! hoveredEvent || hoveredEvent . userTimingMark !== userTimingMark ) {
300306 setHoveredEvent ( {
301307 userTimingMark,
302- event : null ,
308+ nativeEvent : null ,
309+ reactEvent : null ,
310+ flamechartStackFrame : null ,
311+ measure : null ,
312+ data,
313+ } ) ;
314+ }
315+ } ;
316+ }
317+
318+ const { current : nativeEventsView } = nativeEventsViewRef ;
319+ if ( nativeEventsView ) {
320+ nativeEventsView . onHover = nativeEvent => {
321+ if ( ! hoveredEvent || hoveredEvent . nativeEvent !== nativeEvent ) {
322+ setHoveredEvent ( {
323+ userTimingMark : null ,
324+ nativeEvent,
325+ reactEvent : null ,
303326 flamechartStackFrame : null ,
304327 measure : null ,
305328 data,
@@ -310,11 +333,12 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
310333
311334 const { current : reactEventsView } = reactEventsViewRef ;
312335 if ( reactEventsView ) {
313- reactEventsView . onHover = event => {
314- if ( ! hoveredEvent || hoveredEvent . event !== event ) {
336+ reactEventsView . onHover = reactEvent => {
337+ if ( ! hoveredEvent || hoveredEvent . reactEvent !== reactEvent ) {
315338 setHoveredEvent ( {
316339 userTimingMark : null ,
317- event,
340+ nativeEvent : null ,
341+ reactEvent,
318342 flamechartStackFrame : null ,
319343 measure : null ,
320344 data,
@@ -329,7 +353,8 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
329353 if ( ! hoveredEvent || hoveredEvent . measure !== measure ) {
330354 setHoveredEvent ( {
331355 userTimingMark : null ,
332- event : null ,
356+ nativeEvent : null ,
357+ reactEvent : null ,
333358 flamechartStackFrame : null ,
334359 measure,
335360 data,
@@ -347,7 +372,8 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
347372 ) {
348373 setHoveredEvent ( {
349374 userTimingMark : null ,
350- event : null ,
375+ nativeEvent : null ,
376+ reactEvent : null ,
351377 flamechartStackFrame,
352378 measure : null ,
353379 data,
@@ -368,9 +394,18 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
368394 ) ;
369395 }
370396
397+ const { current : nativeEventsView } = nativeEventsViewRef ;
398+ if ( nativeEventsView ) {
399+ nativeEventsView . setHoveredEvent (
400+ hoveredEvent ? hoveredEvent . nativeEvent : null ,
401+ ) ;
402+ }
403+
371404 const { current : reactEventsView } = reactEventsViewRef ;
372405 if ( reactEventsView ) {
373- reactEventsView . setHoveredEvent ( hoveredEvent ? hoveredEvent . event : null ) ;
406+ reactEventsView . setHoveredEvent (
407+ hoveredEvent ? hoveredEvent . reactEvent : null ,
408+ ) ;
374409 }
375410
376411 const { current : reactMeasuresView } = reactMeasuresViewRef ;
@@ -402,22 +437,22 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
402437 return null ;
403438 }
404439 const {
405- event ,
440+ reactEvent ,
406441 flamechartStackFrame,
407442 measure,
408443 } = contextData . hoveredEvent ;
409444 return (
410445 < Fragment >
411- { event !== null && (
446+ { reactEvent !== null && (
412447 < ContextMenuItem
413- onClick = { ( ) => copy ( event . componentName ) }
448+ onClick = { ( ) => copy ( reactEvent . componentName ) }
414449 title = "Copy component name" >
415450 Copy component name
416451 </ ContextMenuItem >
417452 ) }
418- { event !== null && event . componentStack && (
453+ { reactEvent !== null && reactEvent . componentStack && (
419454 < ContextMenuItem
420- onClick = { ( ) => copy ( event . componentStack ) }
455+ onClick = { ( ) => copy ( reactEvent . componentStack ) }
421456 title = "Copy component stack" >
422457 Copy component stack
423458 </ ContextMenuItem >
0 commit comments