2
2
import {loadBenchmarkInfo } from " ../../api" ;
3
3
import AsOf from " ../../components/as-of.vue" ;
4
4
import {
5
- createUrlFromParams ,
5
+ changeUrl ,
6
6
createUrlWithAppendedParams ,
7
7
getUrlParams ,
8
8
navigateToUrlParams ,
@@ -41,6 +41,21 @@ function loadSelectorFromUrl(urlParams: Dict<string>): CompareSelector {
41
41
};
42
42
}
43
43
44
+ function loadTabFromUrl(urlParams : Dict <string >): Tab | null {
45
+ const tab = urlParams [" tab" ] ?? " " ;
46
+ if (tab == Tab .CompileTime ) {
47
+ return Tab .CompileTime ;
48
+ } else if (tab == Tab .Bootstrap ) {
49
+ return Tab .Bootstrap ;
50
+ }
51
+ return null ;
52
+ }
53
+
54
+ function storeTabToUrl(urlParams : Dict <string >, tab : Tab ) {
55
+ urlParams [" tab" ] = tab as string ;
56
+ changeUrl (urlParams );
57
+ }
58
+
44
59
function loadFilterFromUrl(
45
60
urlParams : Dict <string >,
46
61
defaultFilter : DataFilter
@@ -141,10 +156,7 @@ function storeFilterToUrl(
141
156
defaultFilter .category .secondary
142
157
);
143
158
144
- // Change URL without creating a history entry
145
- if (history .replaceState ) {
146
- history .replaceState ({}, null , createUrlFromParams (urlParams ).toString ());
147
- }
159
+ changeUrl (urlParams );
148
160
}
149
161
150
162
async function loadCompareData(
@@ -246,10 +258,12 @@ const info = await loadBenchmarkInfo();
246
258
const selector = loadSelectorFromUrl (urlParams );
247
259
const filter = ref (loadFilterFromUrl (urlParams , defaultFilter ));
248
260
249
- const tab: Ref <Tab > = ref (Tab .CompileTime );
261
+ const initialTab: Tab = loadTabFromUrl (urlParams ) ?? Tab .CompileTime ;
262
+ const tab: Ref <Tab > = ref (initialTab );
250
263
251
264
function changeTab(newTab : Tab ) {
252
265
tab .value = newTab ;
266
+ storeTabToUrl (getUrlParams (), newTab );
253
267
}
254
268
255
269
const data: Ref <CompareResponse | null > = ref (null );
@@ -273,6 +287,7 @@ loadCompareData(selector, loading);
273
287
<Tabs
274
288
@change-tab =" changeTab"
275
289
:data =" data"
290
+ :initial-tab =" initialTab"
276
291
:compile-time-summary =" totalSummary"
277
292
/>
278
293
<template v-if =" tab === Tab .CompileTime " >
0 commit comments