@@ -21,9 +21,10 @@ const showIncr = ref(true);
21
21
const showDelta = ref (true );
22
22
23
23
type SortDirection = " asc" | " desc" ;
24
+ type ColumnName = keyof TableRowData ;
24
25
25
26
// Client-side sorting state
26
- const currentSortColumn = ref <string >(" timeSeconds" );
27
+ const currentSortColumn = ref <ColumnName >(" timeSeconds" );
27
28
const currentSortDirection = ref <SortDirection >(" desc" );
28
29
29
30
// Computed properties for UI data
@@ -173,10 +174,10 @@ function loadSortFromUrl(urlParams: Dict<string>) {
173
174
const sort = urlParams [" sort" ] ?? " -timeSeconds" ; // Default to descending timeSeconds
174
175
// Handle sort format: either "columnName" for asc or "-columnName" for desc
175
176
if (sort .startsWith (" -" )) {
176
- currentSortColumn .value = sort .substring (1 );
177
+ currentSortColumn .value = sort .substring (1 ) as ColumnName ;
177
178
currentSortDirection .value = " desc" ;
178
179
} else {
179
- currentSortColumn .value = sort ;
180
+ currentSortColumn .value = sort as ColumnName ;
180
181
currentSortDirection .value = " asc" ;
181
182
}
182
183
}
@@ -223,7 +224,7 @@ function populateUIData(responseData: SelfProfileResponse, state: Selector) {
223
224
}
224
225
225
226
function changeSortParameters(
226
- columnName : string ,
227
+ columnName : ColumnName ,
227
228
defaultDirection : SortDirection
228
229
) {
229
230
// Toggle direction if clicking the same column, otherwise use default direction
@@ -239,7 +240,7 @@ function changeSortParameters(
239
240
storeSortToUrl ();
240
241
}
241
242
242
- function getHeaderClass(columnName : string ): string {
243
+ function getHeaderClass(columnName : keyof TableRowData ): string {
243
244
if (columnName === currentSortColumn .value ) {
244
245
if (currentSortDirection .value === " asc" ) {
245
246
return " header-sort-asc" ;
0 commit comments