Send message to webview when results are loaded

This commit is contained in:
Koen Vlaswinkel
2022-10-07 12:32:15 +02:00
parent fba49020e3
commit 3167ceec91
2 changed files with 18 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ import {
import {
VariantAnalysis,
VariantAnalysisScannedRepositoryDownloadStatus,
VariantAnalysisScannedRepositoryResult,
VariantAnalysisScannedRepositoryState
} from './shared/variant-analysis';
import { getErrorMessage } from '../pure/helpers-pure';
@@ -37,6 +38,7 @@ export class VariantAnalysisManager extends DisposableObject implements VariantA
this.variantAnalysisMonitor.onVariantAnalysisChange(this.onVariantAnalysisUpdated.bind(this));
this.variantAnalysisResultsManager = this.push(new VariantAnalysisResultsManager(cliServer, storagePath, logger));
this.variantAnalysisResultsManager.onResultLoaded(this.onRepoResultLoaded.bind(this));
}
public async showView(variantAnalysisId: number): Promise<void> {
@@ -85,6 +87,10 @@ export class VariantAnalysisManager extends DisposableObject implements VariantA
await this.getView(variantAnalysis.id)?.updateView(variantAnalysis);
}
private async onRepoResultLoaded(repositoryResult: VariantAnalysisScannedRepositoryResult): Promise<void> {
await this.getView(repositoryResult.variantAnalysisId)?.sendRepositoryResults([repositoryResult]);
}
private async onRepoStateUpdated(variantAnalysisId: number, repoState: VariantAnalysisScannedRepositoryState): Promise<void> {
await this.getView(variantAnalysisId)?.updateRepoState(repoState);
}

View File

@@ -7,6 +7,7 @@ import {
VariantAnalysis,
VariantAnalysisQueryLanguage,
VariantAnalysisRepoStatus,
VariantAnalysisScannedRepositoryResult,
VariantAnalysisScannedRepositoryState,
VariantAnalysisStatus
} from './shared/variant-analysis';
@@ -53,6 +54,17 @@ export class VariantAnalysisView extends AbstractWebview<ToVariantAnalysisMessag
});
}
public async sendRepositoryResults(repositoryResult: VariantAnalysisScannedRepositoryResult[]): Promise<void> {
if (!this.isShowingPanel) {
return;
}
await this.postMessage({
t: 'setRepoResults',
repoResults: repositoryResult,
});
}
protected getPanelConfig(): WebviewPanelConfig {
return {
viewId: VariantAnalysisView.viewType,