@@ -53,7 +53,7 @@ import {
53
53
UserTimingMarksView ,
54
54
} from './content-views' ;
55
55
import { COLORS } from './content-views/constants' ;
56
- import { clampState } from './view-base/utils/scrollState' ;
56
+ import { clampState , moveStateToRange } from './view-base/utils/scrollState' ;
57
57
import EventTooltip from './EventTooltip' ;
58
58
import { RegistryContext } from 'react-devtools-shared/src/devtools/ContextMenu/Contexts' ;
59
59
import ContextMenu from 'react-devtools-shared/src/devtools/ContextMenu/ContextMenu' ;
@@ -109,14 +109,24 @@ const zoomToBatch = (
109
109
data : ReactProfilerData ,
110
110
measure : ReactMeasure ,
111
111
viewState : ViewState ,
112
+ width : number ,
112
113
) => {
113
114
const { batchUID} = measure ;
114
- const [ startTime , stopTime ] = getBatchRange ( batchUID , data ) ;
115
-
116
- viewState . updateHorizontalScrollState ( {
117
- offset : startTime ,
118
- length : stopTime - startTime ,
115
+ const [ rangeStart , rangeEnd ] = getBatchRange ( batchUID , data ) ;
116
+
117
+ // Convert from time range to ScrollState
118
+ const scrollState = moveStateToRange ( {
119
+ state : viewState . horizontalScrollState ,
120
+ rangeStart,
121
+ rangeEnd,
122
+ contentLength : data . duration ,
123
+
124
+ minContentLength : data . duration * MIN_ZOOM_LEVEL ,
125
+ maxContentLength : data . duration * MAX_ZOOM_LEVEL ,
126
+ containerLength : width ,
119
127
} ) ;
128
+
129
+ viewState . updateHorizontalScrollState ( scrollState ) ;
120
130
} ;
121
131
122
132
type AutoSizedCanvasProps = { |
@@ -650,7 +660,7 @@ function AutoSizedCanvas({
650
660
{ measure !== null && (
651
661
< ContextMenuItem
652
662
onClick = { ( ) =>
653
- zoomToBatch ( contextData . data , measure , viewState )
663
+ zoomToBatch ( contextData . data , measure , viewState , width )
654
664
}
655
665
title = "Zoom to batch" >
656
666
Zoom to batch
0 commit comments