@@ -21,9 +21,10 @@ const showIncr = ref(true);
2121const showDelta = ref (true );
2222
2323type SortDirection = " asc" | " desc" ;
24+ type ColumnName = keyof TableRowData ;
2425
2526// Client-side sorting state
26- const currentSortColumn = ref <string >(" timeSeconds" );
27+ const currentSortColumn = ref <ColumnName >(" timeSeconds" );
2728const currentSortDirection = ref <SortDirection >(" desc" );
2829
2930// Computed properties for UI data
@@ -173,10 +174,10 @@ function loadSortFromUrl(urlParams: Dict<string>) {
173174 const sort = urlParams [" sort" ] ?? " -timeSeconds" ; // Default to descending timeSeconds
174175 // Handle sort format: either "columnName" for asc or "-columnName" for desc
175176 if (sort .startsWith (" -" )) {
176- currentSortColumn .value = sort .substring (1 );
177+ currentSortColumn .value = sort .substring (1 ) as ColumnName ;
177178 currentSortDirection .value = " desc" ;
178179 } else {
179- currentSortColumn .value = sort ;
180+ currentSortColumn .value = sort as ColumnName ;
180181 currentSortDirection .value = " asc" ;
181182 }
182183}
@@ -223,7 +224,7 @@ function populateUIData(responseData: SelfProfileResponse, state: Selector) {
223224}
224225
225226function changeSortParameters(
226- columnName : string ,
227+ columnName : ColumnName ,
227228 defaultDirection : SortDirection
228229) {
229230 // Toggle direction if clicking the same column, otherwise use default direction
@@ -239,7 +240,7 @@ function changeSortParameters(
239240 storeSortToUrl ();
240241}
241242
242- function getHeaderClass(columnName : string ): string {
243+ function getHeaderClass(columnName : keyof TableRowData ): string {
243244 if (columnName === currentSortColumn .value ) {
244245 if (currentSortDirection .value === " asc" ) {
245246 return " header-sort-asc" ;
0 commit comments