Teach extension to accept ShowInterpretedPageMsg

This commit is contained in:
Jason Reed
2020-06-29 12:24:36 -04:00
parent 4030ddbdc2
commit fe02a58e45
3 changed files with 26 additions and 2 deletions

View File

@@ -116,8 +116,10 @@ export interface SetStateMsg {
export interface ShowInterpretedPageMsg {
t: 'showInterpretedPage';
interpretation: Interpretation;
database: DatabaseInfo;
metadata?: QueryMetadata;
pageNumber: number;
totalPages: number;
numPages: number;
}
/** Advance to the next or previous path no in the path viewer */

View File

@@ -392,6 +392,9 @@ export class InterfaceManager extends DisposableObject {
public async showPageOfInterpretedResults(
pageNumber: number
): Promise<void> {
if (this._displayedQuery === undefined) {
throw new Error(`Trying to show interpreted results but displayed query was undefined`);
}
if (this._interpretation === undefined) {
throw new Error(`Trying to show interpreted results but interpretation was undefined`);
}
@@ -401,6 +404,8 @@ export class InterfaceManager extends DisposableObject {
await this.postMessage({
t: 'showInterpretedPage',
interpretation: this.getPageOfInterpretedResults(pageNumber),
database: this._displayedQuery.database,
metadata: this._displayedQuery.query.metadata,
pageNumber,
totalPages: Math.ceil(this._interpretation.sarif.runs[0].results.length / INTERPRETED_RESULTS_PAGE_SIZE),
});

View File

@@ -17,6 +17,7 @@ import {
NavigatePathMsg,
QueryMetadata,
ResultsPaths,
ALERTS_TABLE_NAME,
} from '../interface-types';
import { EventHandlers as EventHandlerList } from './event-handler-list';
import { ResultTables } from './result-tables';
@@ -196,7 +197,23 @@ class App extends React.Component<{}, ResultsViewState> {
this.loadResults();
break;
case 'showInterpretedPage':
// TODO: show interpreted page
this.updateStateWithNewResultsInfo({
resultsPath: '...', // XXX
parsedResultSets: {
t: 'ExtensionParsed',
numPages: msg.numPages,
resultSetNames: ['alerts'], // XXX get the other result set names from the extension
pageNumber: msg.pageNumber,
resultSet: undefined as any, // XXX this is awkward
selectedTable: ALERTS_TABLE_NAME,
},
origResultsPaths: undefined as any,
sortedResultsMap: undefined as any,
database: msg.database,
interpretation: msg.interpretation,
shouldKeepOldResultsWhileRendering: false,
metadata: msg.metadata,
});
break;
case 'resultsUpdating':
this.setState({