@@ -15,7 +15,7 @@ import {
1515import { PathTable } from './alert-table' ;
1616import { RawTable } from './raw-results-table' ;
1717import { ResultTableProps , tableSelectionHeaderClassName , toggleDiagnosticsClassName , alertExtrasClassName } from './result-table-utils' ;
18- import { ParsedResultSets , ExtensionParsedResultSets } from '../adapt' ;
18+ import { ParsedResultSets } from '../adapt' ;
1919import { vscode } from './vscode-api' ;
2020
2121
@@ -90,52 +90,23 @@ export class ResultTables
9090 }
9191
9292 private getResultSetNames ( resultSets : ResultSet [ ] ) : string [ ] {
93- if ( this . props . parsedResultSets . t === 'ExtensionParsed' ) {
94- return this . props . parsedResultSets . resultSetNames . concat ( [ ALERTS_TABLE_NAME ] ) ;
95- }
96- else {
97- return resultSets . map ( resultSet => resultSet . schema . name ) ;
98- }
99- }
100-
101- /**
102- * Holds if we have a result set obtained from the extension that came
103- * from the ExtensionParsed branch of ParsedResultSets. This is evidence
104- * that the user has the experimental flag turned on that allows extension-side
105- * bqrs parsing.
106- */
107- paginationAllowed ( ) : boolean {
108- return this . props . parsedResultSets . t === 'ExtensionParsed' ;
93+ return this . props . parsedResultSets . resultSetNames . concat ( [ ALERTS_TABLE_NAME ] ) ;
10994 }
11095
11196 constructor ( props : ResultTablesProps ) {
11297 super ( props ) ;
11398 const selectedTable = props . parsedResultSets . selectedTable || getDefaultResultSet ( this . getResultSets ( ) ) ;
114- let selectedPage : string ;
115-
116- switch ( props . parsedResultSets . t ) {
117- case 'ExtensionParsed' :
118- selectedPage = ( props . parsedResultSets . pageNumber + 1 ) + '' ;
119- break ;
120- case 'WebviewParsed' :
121- selectedPage = '' ;
122- break ;
123- }
99+ const selectedPage = ( props . parsedResultSets . pageNumber + 1 ) + '' ;
124100 this . state = { selectedTable, selectedPage } ;
125101 }
126102
127103 private onTableSelectionChange = ( event : React . ChangeEvent < HTMLSelectElement > ) : void => {
128104 const selectedTable = event . target . value ;
129-
130- if ( this . paginationAllowed ( ) ) {
131- vscode . postMessage ( {
132- t : 'changePage' ,
133- pageNumber : 0 ,
134- selectedTable
135- } ) ;
136- }
137- else
138- this . setState ( { selectedTable } ) ;
105+ vscode . postMessage ( {
106+ t : 'changePage' ,
107+ pageNumber : 0 ,
108+ selectedTable
109+ } ) ;
139110 }
140111
141112 private alertTableExtras ( ) : JSX . Element | undefined {
@@ -164,15 +135,11 @@ export class ResultTables
164135
165136 getOffset ( ) : number {
166137 const { parsedResultSets } = this . props ;
167- switch ( parsedResultSets . t ) {
168- case 'ExtensionParsed' :
169- return parsedResultSets . pageNumber * RAW_RESULTS_PAGE_SIZE ;
170- case 'WebviewParsed' :
171- return 0 ;
172- }
138+ return parsedResultSets . pageNumber * RAW_RESULTS_PAGE_SIZE ;
173139 }
174140
175- renderPageButtons ( resultSets : ExtensionParsedResultSets ) : JSX . Element {
141+ renderPageButtons ( ) : JSX . Element {
142+ const { parsedResultSets } = this . props ;
176143 const selectedTable = this . state . selectedTable ;
177144
178145 // FIXME: The extension, not the view, should be in charge of deciding whether to initially show
@@ -181,7 +148,7 @@ export class ResultTables
181148 // not interpreted pages, because the extension doesn't know the view will default to showing alerts
182149 // instead.
183150 const numPages = selectedTable == ALERTS_TABLE_NAME ?
184- resultSets . numInterpretedPages : resultSets . numPages ;
151+ parsedResultSets . numInterpretedPages : parsedResultSets . numPages ;
185152
186153 const onChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
187154 this . setState ( { selectedPage : e . target . value } ) ;
@@ -201,14 +168,14 @@ export class ResultTables
201168 const prevPage = ( e : React . MouseEvent < HTMLButtonElement , MouseEvent > ) => {
202169 vscode . postMessage ( {
203170 t : 'changePage' ,
204- pageNumber : Math . max ( resultSets . pageNumber - 1 , 0 ) ,
171+ pageNumber : Math . max ( parsedResultSets . pageNumber - 1 , 0 ) ,
205172 selectedTable,
206173 } ) ;
207174 } ;
208175 const nextPage = ( e : React . MouseEvent < HTMLButtonElement , MouseEvent > ) => {
209176 vscode . postMessage ( {
210177 t : 'changePage' ,
211- pageNumber : Math . min ( resultSets . pageNumber + 1 , numPages - 1 ) ,
178+ pageNumber : Math . min ( parsedResultSets . pageNumber + 1 , numPages - 1 ) ,
212179 selectedTable,
213180 } ) ;
214181 } ;
@@ -230,13 +197,6 @@ export class ResultTables
230197 </ span > ;
231198 }
232199
233- renderButtons ( ) : JSX . Element {
234- if ( this . props . parsedResultSets . t === 'ExtensionParsed' && this . paginationAllowed ( ) )
235- return this . renderPageButtons ( this . props . parsedResultSets ) ;
236- else
237- return < span /> ;
238- }
239-
240200 render ( ) : React . ReactNode {
241201 const { selectedTable } = this . state ;
242202 const resultSets = this . getResultSets ( ) ;
@@ -250,7 +210,7 @@ export class ResultTables
250210 resultSetNames . map ( name => < option key = { name } value = { name } > { name } </ option > ) ;
251211
252212 return < div >
253- { this . renderButtons ( ) }
213+ { this . renderPageButtons ( ) }
254214 < div className = { tableSelectionHeaderClassName } >
255215 < select value = { selectedTable } onChange = { this . onTableSelectionChange } >
256216 { resultSetOptions }
0 commit comments