@@ -47,7 +47,7 @@ import {
47
47
} from "react" ;
48
48
import { Helmet } from "react-helmet-async" ;
49
49
import { useQuery } from "react-query" ;
50
- import { useSearchParams } from "react-router" ;
50
+ import { type SetURLSearchParams , useSearchParams } from "react-router" ;
51
51
import { getLatencyColor } from "utils/latency" ;
52
52
import {
53
53
addTime ,
@@ -105,24 +105,13 @@ export default function TemplateInsightsPage() {
105
105
</ Helmet >
106
106
< TemplateInsightsPageView
107
107
controls = {
108
- < >
109
- < IntervalMenu
110
- value = { interval }
111
- onChange = { ( interval ) => {
112
- // When going from daily to week we need to set a safe week range
113
- if ( interval === "week" ) {
114
- setDateRange ( lastWeeks ( DEFAULT_NUMBER_OF_WEEKS ) ) ;
115
- }
116
- searchParams . set ( "interval" , interval ) ;
117
- setSearchParams ( searchParams ) ;
118
- } }
119
- />
120
- { interval === "day" ? (
121
- < DailyPicker value = { dateRange } onChange = { setDateRange } />
122
- ) : (
123
- < WeekPicker value = { dateRange } onChange = { setDateRange } />
124
- ) }
125
- </ >
108
+ < TemplateInsightsControls
109
+ interval = { interval }
110
+ dateRange = { dateRange }
111
+ setDateRange = { setDateRange }
112
+ searchParams = { searchParams }
113
+ setSearchParams = { setSearchParams }
114
+ />
126
115
}
127
116
templateInsights = { templateInsights }
128
117
userLatency = { userLatency }
@@ -134,6 +123,43 @@ export default function TemplateInsightsPage() {
134
123
) ;
135
124
}
136
125
126
+ interface TemplateInsightsControlsProps {
127
+ interval : "day" | "week" ;
128
+ dateRange : DateRangeValue ;
129
+ setDateRange : ( value : DateRangeValue ) => void ;
130
+ searchParams : URLSearchParams ;
131
+ setSearchParams : SetURLSearchParams ;
132
+ }
133
+
134
+ export const TemplateInsightsControls : FC < TemplateInsightsControlsProps > = ( {
135
+ interval,
136
+ dateRange,
137
+ setDateRange,
138
+ searchParams,
139
+ setSearchParams,
140
+ } ) => {
141
+ return (
142
+ < >
143
+ < IntervalMenu
144
+ value = { interval }
145
+ onChange = { ( interval ) => {
146
+ // When going from daily to week we need to set a safe week range
147
+ if ( interval === "week" ) {
148
+ setDateRange ( lastWeeks ( DEFAULT_NUMBER_OF_WEEKS ) ) ;
149
+ }
150
+ searchParams . set ( "interval" , interval ) ;
151
+ setSearchParams ( searchParams ) ;
152
+ } }
153
+ />
154
+ { interval === "day" ? (
155
+ < DailyPicker value = { dateRange } onChange = { setDateRange } />
156
+ ) : (
157
+ < WeekPicker value = { dateRange } onChange = { setDateRange } />
158
+ ) }
159
+ </ >
160
+ ) ;
161
+ } ;
162
+
137
163
const getDefaultInterval = ( template : Template ) => {
138
164
const now = new Date ( ) ;
139
165
const templateCreateDate = new Date ( template . created_at ) ;
0 commit comments