@@ -17,6 +17,7 @@ import {
1717 type NativeStoryProps ,
1818 type ShowcaseStory
1919} from "./storyPrimitives" ;
20+ import performanceStoryMetadata from "./performanceStoryMetadata.json" ;
2021
2122type PerfLinePoint = {
2223 benchmark : number ;
@@ -122,12 +123,33 @@ const createCandles = (count: number): PerfCandlePoint[] => {
122123 return candles ;
123124} ;
124125
125- const line100 = createLineData ( 100 ) ;
126- const line1000 = createLineData ( 1000 ) ;
127- const line10000 = createLineData ( 10000 ) ;
128- const bars500 = createBarData ( 500 ) ;
129- const combinedPerf = createCombinedData ( 36 ) ;
130- const candles1000 = createCandles ( 1000 ) ;
126+ const getStoryMetadata = ( storyId : string ) => {
127+ const metadata = performanceStoryMetadata . stories . find (
128+ ( story ) => story . id === storyId
129+ ) ;
130+
131+ if ( ! metadata ) {
132+ throw new Error ( `Missing performance story metadata for ${ storyId } ` ) ;
133+ }
134+
135+ return metadata ;
136+ } ;
137+
138+ const line100Metadata = getStoryMetadata ( "v2-perf-line-100" ) ;
139+ const line1000Metadata = getStoryMetadata ( "v2-perf-line-1000-scrub" ) ;
140+ const line10000Metadata = getStoryMetadata ( "v2-perf-line-10000-overview" ) ;
141+ const panLineMetadata = getStoryMetadata ( "v2-perf-line-10000-pan" ) ;
142+ const rangeMetadata = getStoryMetadata ( "v2-perf-range-2x10000" ) ;
143+ const barMetadata = getStoryMetadata ( "v2-perf-bar-500-selection" ) ;
144+ const combinedMetadata = getStoryMetadata ( "v2-perf-combined-tooltip" ) ;
145+ const candleMetadata = getStoryMetadata ( "v2-perf-candlestick-1000" ) ;
146+
147+ const line100 = createLineData ( line100Metadata . totalPoints ) ;
148+ const line1000 = createLineData ( line1000Metadata . totalPoints ) ;
149+ const line10000 = createLineData ( line10000Metadata . totalPoints ) ;
150+ const bars500 = createBarData ( barMetadata . totalPoints ) ;
151+ const combinedPerf = createCombinedData ( combinedMetadata . totalPoints ) ;
152+ const candles1000 = createCandles ( candleMetadata . totalPoints ) ;
131153
132154const PerfSmallLine = ( { width } : NativeStoryProps ) => (
133155 < ChartSection title = "100 point line" kicker = "Native performance" >
@@ -230,8 +252,8 @@ const PerfMultiLineSharedTooltip = ({
230252
231253const PerfPanLine = ( { onScrubEnd, onScrubStart, width } : NativeStoryProps ) => {
232254 const [ viewport , setViewport ] = useState < LineChartViewportConfig > ( {
233- endIndex : 9999 ,
234- startIndex : 8000
255+ endIndex : panLineMetadata . totalPoints - 1 ,
256+ startIndex : panLineMetadata . totalPoints - panLineMetadata . visiblePoints
235257 } ) ;
236258 const handleViewportChange = useCallback (
237259 ( event : LineChartViewportChangeEvent ) => setViewport ( event . viewport ) ,
@@ -271,8 +293,8 @@ const PerfRangeSelector = ({
271293 width
272294} : NativeStoryProps ) => {
273295 const [ viewport , setViewport ] = useState < LineChartViewportConfig > ( {
274- endIndex : 9999 ,
275- startIndex : 8500
296+ endIndex : rangeMetadata . totalPoints - 1 ,
297+ startIndex : rangeMetadata . totalPoints - rangeMetadata . visiblePoints
276298 } ) ;
277299 const handleViewportChange = useCallback (
278300 ( event : LineChartViewportChangeEvent ) => setViewport ( event . viewport ) ,
@@ -363,8 +385,8 @@ const PerfCandlestick = ({
363385 width
364386} : NativeStoryProps ) => {
365387 const [ viewport , setViewport ] = useState < CandlestickChartViewportConfig > ( {
366- endIndex : 999 ,
367- startIndex : 920
388+ endIndex : candleMetadata . totalPoints - 1 ,
389+ startIndex : candleMetadata . totalPoints - candleMetadata . visiblePoints
368390 } ) ;
369391 const handleViewportChange = useCallback (
370392 ( event : { viewport : CandlestickChartViewportConfig } ) =>
0 commit comments