From b2533bb1c9cdb9e9f5fa82e4e86181474b3166fd Mon Sep 17 00:00:00 2001 From: Levi Yan Date: Tue, 16 Jul 2024 17:37:42 +0800 Subject: [PATCH] feat: monitor the requests that open remote folder from the front --- src/home.ts | 74 ++++++++++++++++------------------------------------- 1 file changed, 22 insertions(+), 52 deletions(-) diff --git a/src/home.ts b/src/home.ts index 0babcf5..27e6087 100644 --- a/src/home.ts +++ b/src/home.ts @@ -1,35 +1,41 @@ import * as vscode from 'vscode'; +import RemoteContainer from './remote-container'; +import fetch from './fetch' export default class SIHome { - context: vscode.ExtensionContext; + private context: vscode.ExtensionContext; + private remoteContainer: RemoteContainer; + static defaultUrl = 'http://localhost:8080/tmp/index.html'; constructor(context: vscode.ExtensionContext) { this.context = context; + this.remoteContainer = new RemoteContainer() } - toggle(url: string) { - console.log('url: ', url) + async toggle(url: string = SIHome.defaultUrl) { + console.log(url); const panel = vscode.window.createWebviewPanel( 'myWebview', 'My Webview', vscode.ViewColumn.One, - {} + { + enableScripts: true, + } ); - panel.webview.options = { - enableScripts: true, - }; - - panel.webview.html = this.getWebviewContent(); + fetch(url).then(async (content) => { + panel.webview.html = await this.getWebviewContent(content); + }) panel.webview.onDidReceiveMessage( - (message) => { + async (message) => { switch (message.command) { - case 'alert': - vscode.window.showInformationMessage(message.text); + case 'firstOpenRemoteFolder': + await this.remoteContainer.firstConnect(message.host, message.username, message.password, message.port); + this.remoteContainer.openRemoteFolder(message.host, message.path); return; - case 'openFolder': - this.openFolderInVSCode(message.path); + case 'openRemoteFolder': + this.remoteContainer.openRemoteFolder(message.host, message.path); return; } }, @@ -41,43 +47,7 @@ export default class SIHome { } - openFolderInVSCode(path: string): void { - try { - vscode.commands.executeCommand('vscode.openFolder', vscode.Uri.file(path)) - console.log('Opened folder: ', path); - } catch (error) { - console.error('Error opening folder: ', error); - } - } - - getWebviewContent() { - return ` - - - - - - Cat Coding - - -

Cat Coding

- - - - - - - - `; + async getWebviewContent(content: string): Promise { + return `${content}` } } \ No newline at end of file