1
1
<script setup lang="ts">
2
2
import {ref , onMounted , Ref , computed } from " vue" ;
3
3
import {
4
- getUrlParams
4
+ getUrlParams ,
5
+ changeUrl
5
6
} from " ../../utils/navigation" ;
6
7
import {postMsgpack } from " ../../utils/requests" ;
7
8
import {SELF_PROFILE_DATA_URL } from " ../../urls" ;
@@ -104,7 +105,7 @@ const tableData = computed(() => {
104
105
}
105
106
106
107
// Handle string vs number comparison
107
- let comparison;
108
+ let comparison: number ;
108
109
if (typeof aValue === " string" && typeof bValue === " string" ) {
109
110
comparison = aValue .localeCompare (bValue );
110
111
} else {
@@ -129,9 +130,34 @@ function handlePerfettoClick(event: Event, link: string, title: string) {
129
130
openTraceInPerfetto (link , title );
130
131
}
131
132
133
+ function loadSortFromUrl(urlParams : Dict <string >) {
134
+ const sort = urlParams [" sort" ] ?? " -timeSeconds" ; // Default to descending timeSeconds
135
+ // Handle sort format: either "columnName" for asc or "-columnName" for desc
136
+ if (sort .startsWith (" -" )) {
137
+ currentSortColumn .value = sort .substring (1 );
138
+ currentSortDirection .value = " desc" ;
139
+ } else {
140
+ currentSortColumn .value = sort ;
141
+ currentSortDirection .value = " asc" ;
142
+ }
143
+ }
144
+
145
+ function storeSortToUrl() {
146
+ const params = getUrlParams ();
147
+ const sortValue = currentSortDirection .value === " desc"
148
+ ? ` -${currentSortColumn .value } `
149
+ : currentSortColumn .value ;
150
+ params [" sort" ] = sortValue ;
151
+ changeUrl (params );
152
+ }
153
+
132
154
async function loadData() {
133
155
const params = getUrlParams ();
134
156
const {commit, base_commit, benchmark, scenario} = params ;
157
+
158
+ // Load sort state from URL
159
+ loadSortFromUrl (params );
160
+
135
161
const currentSelector: Selector = {
136
162
commit ,
137
163
base_commit: base_commit ?? null ,
@@ -168,6 +194,9 @@ function sortTable(columnName: string, defaultDirection: number) {
168
194
currentSortColumn .value = columnName ;
169
195
currentSortDirection .value = defaultDirection === 1 ? " asc" : " desc" ;
170
196
}
197
+
198
+ // Update URL with new sort state
199
+ storeSortToUrl ();
171
200
}
172
201
173
202
function getSortAttributes(columnName : string ) {
0 commit comments