@@ -85,9 +85,16 @@ const parseKeyPrefix = (value: string | null): MetricKeyPrefix =>
8585 ? ( value as MetricKeyPrefix )
8686 : 'rn' ;
8787
88- const parseDateRange = ( searchParams : URLSearchParams ) : [ Dayjs , Dayjs ] => {
89- const fallbackEnd = dayjs ( ) ;
90- const fallbackStart = fallbackEnd . subtract ( DEFAULT_RANGE_HOURS , 'hour' ) ;
88+ const createDefaultDateRange = ( ) : [ Dayjs , Dayjs ] => {
89+ const end = dayjs ( ) ;
90+ return [ end . subtract ( DEFAULT_RANGE_HOURS , 'hour' ) , end ] ;
91+ } ;
92+
93+ const parseDateRange = (
94+ searchParams : URLSearchParams ,
95+ fallbackRange : [ Dayjs , Dayjs ] ,
96+ ) : [ Dayjs , Dayjs ] => {
97+ const [ fallbackStart , fallbackEnd ] = fallbackRange ;
9198 const parsedStart = searchParams . get ( 'start' )
9299 ? dayjs ( searchParams . get ( 'start' ) )
93100 : fallbackStart ;
@@ -106,9 +113,15 @@ const parseDateRange = (searchParams: URLSearchParams): [Dayjs, Dayjs] => {
106113export const Component = ( ) => {
107114 const [ searchParams , setSearchParams ] = useSearchParams ( ) ;
108115 const legendValuesRef = useRef < string [ ] > ( [ ] ) ;
116+ const defaultRangeRef = useRef < [ Dayjs , Dayjs ] | null > ( null ) ;
117+ defaultRangeRef . current ??= createDefaultDateRange ( ) ;
118+
109119 const mode = parseMode ( searchParams . get ( 'mode' ) ) ;
110120 const selectedKeyPrefix = parseKeyPrefix ( searchParams . get ( 'prefix' ) ) ;
111- const [ rangeStart , rangeEnd ] = parseDateRange ( searchParams ) ;
121+ const [ rangeStart , rangeEnd ] = parseDateRange (
122+ searchParams ,
123+ defaultRangeRef . current ,
124+ ) ;
112125 const startDate = rangeStart . toISOString ( ) ;
113126 const endDate = rangeEnd . toISOString ( ) ;
114127
0 commit comments