Skip to content

Commit f201109

Browse files
authored
Fix sandbox stuck loading (#3325)
Don't `await` message being sent to the webview when the webview is being built, since the webview is likely unable to receive the message yet. Fixes #3323 Signed-off-by: David Thompson <davthomp@redhat.com>
1 parent 06a8bfa commit f201109

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/webview/cluster/clusterViewLoader.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,6 @@ export default class ClusterViewLoader {
358358
await cfg.update('crcNameserver', event.nameserver);
359359
}
360360

361-
// eslint-disable-next-line @typescript-eslint/require-await
362361
static async loadView(title: string): Promise<vscode.WebviewPanel> {
363362
const localResourceRoot = vscode.Uri.file(path.join(ClusterViewLoader.extensionPath, 'out', 'clusterViewer'));
364363
if (panel) {
@@ -372,11 +371,13 @@ export default class ClusterViewLoader {
372371
});
373372
panel.iconPath = vscode.Uri.file(path.join(ClusterViewLoader.extensionPath, 'images/context/cluster-node.png'));
374373
panel.webview.html = await loadWebviewHtml('clusterViewer', panel);
375-
await panel.webview.postMessage({action: 'cluster', data: ''});
374+
const messageListenerDisposable = panel.webview.onDidReceiveMessage(clusterEditorMessageListener);
376375
panel.onDidDispose(()=> {
376+
messageListenerDisposable.dispose();
377377
panel = undefined;
378378
});
379-
panel.webview.onDidReceiveMessage(clusterEditorMessageListener);
379+
// don't await this message being sent, since the webview may not be set up yet
380+
void panel.webview.postMessage({action: 'cluster', data: ''});
380381
}
381382
return panel;
382383
}

0 commit comments

Comments
 (0)