99 ResultTableProps ,
1010 selectableZebraStripe ,
1111 jumpToLocation ,
12- nextSortDirection ,
1312 emptyQueryResultsMessage ,
1413} from "./result-table-utils" ;
1514import { onNavigation } from "./results" ;
@@ -18,19 +17,16 @@ import {
1817 NavigateMsg ,
1918 NavigationDirection ,
2019 SarifInterpretationData ,
21- InterpretedResultsSortColumn ,
22- SortDirection ,
23- InterpretedResultsSortState ,
2420} from "../../common/interface-types" ;
2521import {
2622 parseSarifPlainTextMessage ,
2723 parseSarifLocation ,
2824 isNoLocation ,
2925} from "../../common/sarif-utils" ;
30- import { vscode } from "../vscode-api" ;
3126import { isWholeFileLoc , isLineColumnLoc } from "../../common/bqrs-utils" ;
3227import { ScrollIntoViewHelper } from "./scroll-into-view-helper" ;
3328import { sendTelemetry } from "../common/telemetry" ;
29+ import { AlertTableHeader } from "./alert-table-header" ;
3430
3531export type AlertTableProps = ResultTableProps & {
3632 resultSet : InterpretedResultSet < SarifInterpretationData > ;
@@ -77,38 +73,6 @@ export class AlertTable extends React.Component<
7773 e . preventDefault ( ) ;
7874 }
7975
80- sortClass ( column : InterpretedResultsSortColumn ) : string {
81- const sortState = this . props . resultSet . interpretation . data . sortState ;
82- if ( sortState !== undefined && sortState . sortBy === column ) {
83- return sortState . sortDirection === SortDirection . asc
84- ? "sort-asc"
85- : "sort-desc" ;
86- } else {
87- return "sort-none" ;
88- }
89- }
90-
91- getNextSortState (
92- column : InterpretedResultsSortColumn ,
93- ) : InterpretedResultsSortState | undefined {
94- const oldSortState = this . props . resultSet . interpretation . data . sortState ;
95- const prevDirection =
96- oldSortState && oldSortState . sortBy === column
97- ? oldSortState . sortDirection
98- : undefined ;
99- const nextDirection = nextSortDirection ( prevDirection , true ) ;
100- return nextDirection === undefined
101- ? undefined
102- : { sortBy : column , sortDirection : nextDirection } ;
103- }
104-
105- toggleSortStateForColumn ( column : InterpretedResultsSortColumn ) : void {
106- vscode . postMessage ( {
107- t : "changeInterpretedSort" ,
108- sortState : this . getNextSortState ( column ) ,
109- } ) ;
110- }
111-
11276 renderNoResults ( ) : JSX . Element {
11377 if ( this . props . nonemptyRawResults ) {
11478 return (
@@ -132,23 +96,6 @@ export class AlertTable extends React.Component<
13296 render ( ) : JSX . Element {
13397 const { databaseUri, resultSet } = this . props ;
13498
135- const header = (
136- < thead >
137- < tr >
138- < th colSpan = { 2 } > </ th >
139- < th
140- className = { `${ this . sortClass (
141- "alert-message" ,
142- ) } vscode-codeql__alert-message-cell`}
143- colSpan = { 3 }
144- onClick = { ( ) => this . toggleSortStateForColumn ( "alert-message" ) }
145- >
146- Message
147- </ th >
148- </ tr >
149- </ thead >
150- ) ;
151-
15299 const rows : JSX . Element [ ] = [ ] ;
153100 const { numTruncatedResults, sourceLocationPrefix } =
154101 resultSet . interpretation ;
@@ -471,7 +418,7 @@ export class AlertTable extends React.Component<
471418
472419 return (
473420 < table className = { className } >
474- { header }
421+ < AlertTableHeader sortState = { resultSet . interpretation . data . sortState } />
475422 < tbody > { rows } </ tbody >
476423 </ table >
477424 ) ;
0 commit comments