Skip to content
Snippets Groups Projects
Commit 21b20b82 authored by Christian ZHENG's avatar Christian ZHENG Committed by Guillaume WEBER
Browse files

fix(view): show Getting Started button by default + fix split screen on briefing opening

(cherry picked from commit 898ae765)
parent ed22c021
Branches
No related tags found
2 merge requests!14feat: added mounted, .bashrc, .zshrc, added tests, added keycloak tests,!8feat(extension): login, open in devcontainer, automaticly save code, open briefing, publish extension
......@@ -64,7 +64,7 @@
{
"id": "help",
"name": "Help",
"visibility": "collapsed"
"visibility": "visible"
}
]
},
......
......@@ -25,8 +25,8 @@ export function getUri(webview: Webview, extensionUri: Uri, pathList: string[])
export abstract class WebviewBase implements Disposable {
protected disposable: Disposable;
private disposablePanel: Disposable | undefined;
protected panel: WebviewPanel | undefined;
private _disposablePanel: Disposable | undefined;
protected _panel: WebviewPanel | undefined;
constructor(private id: string, private title: string, command: Command, private readonly _column?: ViewColumn) {
this.disposable = Disposable.from(commands.registerCommand(command.cmd, this.onShowCommand, this));
......@@ -34,7 +34,7 @@ export abstract class WebviewBase implements Disposable {
}
getExternalRessourcePath(extensionUri: Uri, pathList: string[]) {
return getUri(this.panel!.webview, extensionUri, pathList);
return getUri(this._panel!.webview, extensionUri, pathList);
}
registerCommands(): Disposable[] {
......@@ -47,7 +47,7 @@ export abstract class WebviewBase implements Disposable {
dispose() {
this.disposable.dispose();
this.disposablePanel?.dispose();
this._disposablePanel?.dispose();
}
protected onShowCommand() {
......@@ -55,8 +55,8 @@ export abstract class WebviewBase implements Disposable {
}
private onPanelDisposed() {
this.disposablePanel?.dispose();
this.panel = undefined;
this._disposablePanel?.dispose();
this._panel = undefined;
}
private onViewStateChanged(e: WebviewPanelOnDidChangeViewStateEvent) {
......@@ -67,17 +67,17 @@ export abstract class WebviewBase implements Disposable {
}
get visible() {
return this.panel?.visible ?? false;
return this._panel?.visible ?? false;
}
hide() {
this.panel?.dispose();
this._panel?.dispose();
}
setTitle(title: string) {
if (this.panel == null) return;
if (this._panel == null) return;
this.panel.title = title;
this._panel.title = title;
}
onMessageReceive(message) {
......@@ -89,46 +89,41 @@ export abstract class WebviewBase implements Disposable {
}
async show(column: ViewColumn = ViewColumn.Beside): Promise<void> {
if (this.panel == null) {
this.panel = window.createWebviewPanel(
this.id,
this.title,
{ viewColumn: column, preserveFocus: false },
{
if (this._panel == null) {
this._panel = window.createWebviewPanel(this.id, this.title, ViewColumn.Active, {
retainContextWhenHidden: true,
enableFindWidget: true,
enableCommandUris: true,
enableScripts: true,
},
);
});
this.disposablePanel = Disposable.from(
this.panel,
this.panel.onDidDispose(this.onPanelDisposed, this),
this.panel.onDidChangeViewState(this.onViewStateChanged, this),
this.panel.webview.onDidReceiveMessage(this.onMessageReceive, this),
this._disposablePanel = Disposable.from(
this._panel,
this._panel.onDidDispose(this.onPanelDisposed, this),
this._panel.onDidChangeViewState(this.onViewStateChanged, this),
this._panel.webview.onDidReceiveMessage(this.onMessageReceive, this),
...this.registerCommands(),
);
this.panel.webview.html = await this.getHtml(this.panel.webview);
this._panel.webview.html = await this.getHtml(this._panel.webview);
} else {
const html = await this.getHtml(this.panel.webview);
const html = await this.getHtml(this._panel.webview);
// Reset the html to get the webview to reload
this.panel.webview.html = '';
this.panel.webview.html = html;
this._panel.webview.html = '';
this._panel.webview.html = html;
this.panel.reveal(this.panel.viewColumn ?? ViewColumn.Active, false);
this._panel.reveal(this._panel.viewColumn ?? ViewColumn.Active, false);
}
}
async reload() {
if (this.panel) {
const html = await this.getHtml(this.panel.webview);
if (this._panel) {
const html = await this.getHtml(this._panel.webview);
// Reset the html to get the webview to reload
this.panel.webview.html = '';
this.panel.webview.html = html;
this._panel.webview.html = '';
this._panel.webview.html = html;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment