Skip to content

Commit d5f65c0

Browse files
committed
fix: reuse existing panel
1 parent ff6b2c5 commit d5f65c0

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

src/commands/showPanel.tsx

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,24 @@ export async function showPanel(
2222
language = LANGUAGES.SOURCE_1;
2323
}
2424

25-
// Get a reference to the active editor (before the focus is switched to our newly created webview)
26-
// firstEditor = vscode.window.activeTextEditor!;
27-
28-
messageHandler.panel = vscode.window.createWebviewPanel(
29-
"source-academy-panel",
30-
"Source Academy",
31-
vscode.ViewColumn.Beside,
32-
{
33-
enableScripts: true, // Enable scripts in the webview
34-
retainContextWhenHidden: true,
35-
},
36-
);
25+
// Don't recreate the panel it already exists. There will only be one panel at anytime.
26+
if (!messageHandler.panel) {
27+
messageHandler.panel = vscode.window.createWebviewPanel(
28+
"source-academy-panel",
29+
"Source Academy",
30+
vscode.ViewColumn.Beside,
31+
{
32+
enableScripts: true, // Enable scripts in w the webview
33+
retainContextWhenHidden: true,
34+
},
35+
);
3736

38-
messageHandler.panel.webview.onDidReceiveMessage(
39-
(message: MessageType) => messageHandler.handleMessage(context, message),
40-
undefined,
41-
context.subscriptions,
42-
);
37+
messageHandler.panel.webview.onDidReceiveMessage(
38+
(message: MessageType) => messageHandler.handleMessage(context, message),
39+
undefined,
40+
context.subscriptions,
41+
);
42+
}
4343

4444
const iframeUrl = new URL(route ?? "/playground", config.frontendBaseUrl)
4545
.href;

0 commit comments

Comments
 (0)