@@ -44,6 +44,7 @@ import {
44
44
} from './view-base' ;
45
45
import {
46
46
FlamechartView ,
47
+ NativeEventsView ,
47
48
ReactEventsView ,
48
49
ReactMeasuresView ,
49
50
TimeAxisMarkersView ,
@@ -126,6 +127,7 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
126
127
127
128
const surfaceRef = useRef ( new Surface ( ) ) ;
128
129
const userTimingMarksViewRef = useRef ( null ) ;
130
+ const nativeEventsViewRef = useRef ( null ) ;
129
131
const reactEventsViewRef = useRef ( null ) ;
130
132
const reactMeasuresViewRef = useRef ( null ) ;
131
133
const flamechartViewRef = useRef ( null ) ;
@@ -176,6 +178,10 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
176
178
topContentStack . addSubview ( userTimingMarksView ) ;
177
179
}
178
180
181
+ const nativeEventsView = new NativeEventsView ( surface , defaultFrame , data ) ;
182
+ nativeEventsViewRef . current = nativeEventsView ;
183
+ topContentStack . addSubview ( nativeEventsView ) ;
184
+
179
185
const reactEventsView = new ReactEventsView ( surface , defaultFrame , data ) ;
180
186
reactEventsViewRef . current = reactEventsView ;
181
187
topContentStack . addSubview ( reactEventsView ) ;
@@ -299,7 +305,24 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
299
305
if ( ! hoveredEvent || hoveredEvent . userTimingMark !== userTimingMark ) {
300
306
setHoveredEvent ( {
301
307
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 ,
303
326
flamechartStackFrame : null ,
304
327
measure : null ,
305
328
data,
@@ -310,11 +333,12 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
310
333
311
334
const { current : reactEventsView } = reactEventsViewRef ;
312
335
if ( reactEventsView ) {
313
- reactEventsView . onHover = event => {
314
- if ( ! hoveredEvent || hoveredEvent . event !== event ) {
336
+ reactEventsView . onHover = reactEvent => {
337
+ if ( ! hoveredEvent || hoveredEvent . reactEvent !== reactEvent ) {
315
338
setHoveredEvent ( {
316
339
userTimingMark : null ,
317
- event,
340
+ nativeEvent : null ,
341
+ reactEvent,
318
342
flamechartStackFrame : null ,
319
343
measure : null ,
320
344
data,
@@ -329,7 +353,8 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
329
353
if ( ! hoveredEvent || hoveredEvent . measure !== measure ) {
330
354
setHoveredEvent ( {
331
355
userTimingMark : null ,
332
- event : null ,
356
+ nativeEvent : null ,
357
+ reactEvent : null ,
333
358
flamechartStackFrame : null ,
334
359
measure,
335
360
data,
@@ -347,7 +372,8 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
347
372
) {
348
373
setHoveredEvent ( {
349
374
userTimingMark : null ,
350
- event : null ,
375
+ nativeEvent : null ,
376
+ reactEvent : null ,
351
377
flamechartStackFrame,
352
378
measure : null ,
353
379
data,
@@ -368,9 +394,18 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
368
394
) ;
369
395
}
370
396
397
+ const { current : nativeEventsView } = nativeEventsViewRef ;
398
+ if ( nativeEventsView ) {
399
+ nativeEventsView . setHoveredEvent (
400
+ hoveredEvent ? hoveredEvent . nativeEvent : null ,
401
+ ) ;
402
+ }
403
+
371
404
const { current : reactEventsView } = reactEventsViewRef ;
372
405
if ( reactEventsView ) {
373
- reactEventsView . setHoveredEvent ( hoveredEvent ? hoveredEvent . event : null ) ;
406
+ reactEventsView . setHoveredEvent (
407
+ hoveredEvent ? hoveredEvent . reactEvent : null ,
408
+ ) ;
374
409
}
375
410
376
411
const { current : reactMeasuresView } = reactMeasuresViewRef ;
@@ -402,22 +437,22 @@ function AutoSizedCanvas({data, height, width}: AutoSizedCanvasProps) {
402
437
return null ;
403
438
}
404
439
const {
405
- event ,
440
+ reactEvent ,
406
441
flamechartStackFrame,
407
442
measure,
408
443
} = contextData . hoveredEvent ;
409
444
return (
410
445
< Fragment >
411
- { event !== null && (
446
+ { reactEvent !== null && (
412
447
< ContextMenuItem
413
- onClick = { ( ) => copy ( event . componentName ) }
448
+ onClick = { ( ) => copy ( reactEvent . componentName ) }
414
449
title = "Copy component name" >
415
450
Copy component name
416
451
</ ContextMenuItem >
417
452
) }
418
- { event !== null && event . componentStack && (
453
+ { reactEvent !== null && reactEvent . componentStack && (
419
454
< ContextMenuItem
420
- onClick = { ( ) => copy ( event . componentStack ) }
455
+ onClick = { ( ) => copy ( reactEvent . componentStack ) }
421
456
title = "Copy component stack" >
422
457
Copy component stack
423
458
</ ContextMenuItem >
0 commit comments