From 16944a83dfaff5ceb074a43c84374b6776670766 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 7 Apr 2021 16:11:03 +0200 Subject: [PATCH] switch to learneth workspace --- apps/remix-ide/src/app.js | 1 + apps/remix-ide/src/app/panels/file-panel.js | 13 +++++++++++++ apps/remix-ide/src/remixAppManager.js | 4 ++++ .../workspace/src/lib/remix-ui-workspace.tsx | 4 ++++ 4 files changed, 22 insertions(+) diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index ce1919451a..1fafbfe23a 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -480,6 +480,7 @@ Please make a backup of your contracts and start using http://remix.ethereum.org appManager.call(...callDetails).catch(console.error) } } + appManager.finishActivation() }).catch(console.error) } else { // activate solidity plugin diff --git a/apps/remix-ide/src/app/panels/file-panel.js b/apps/remix-ide/src/app/panels/file-panel.js index bf5fd6ba05..86161a09de 100644 --- a/apps/remix-ide/src/app/panels/file-panel.js +++ b/apps/remix-ide/src/app/panels/file-panel.js @@ -48,6 +48,7 @@ module.exports = class Filepanel extends ViewPlugin { constructor (appManager) { super(profile) this.event = new EventManager() + this.appManager = appManager this._components = {} this._components.registry = globalRegistry this._deps = { @@ -136,6 +137,18 @@ module.exports = class Filepanel extends ViewPlugin { } async initWorkspace () { + this.on('manager', 'activationFinished', () => { + this.on('manager', 'pluginActivated', async (profile) => { + if (profile.name === 'LearnEth') { + const name = "learneth" + if (!this.workspaces.includes(name)) { + await this.processCreateWorkspace(name) + this.getWorkspaces() + } + return await this.request.setWorkspace(name) + } + }) + }) const queryParams = new QueryParams() const gistHandler = new GistHandler() const params = queryParams.get() diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js index 610260f59b..341e52b94c 100644 --- a/apps/remix-ide/src/remixAppManager.js +++ b/apps/remix-ide/src/remixAppManager.js @@ -65,6 +65,10 @@ export class RemixAppManager extends PluginManager { return await this.permissionHandler.askPermission(this.profiles[from], this.profiles[to], method, message) } + finishActivation () { + this.emit('activationFinished') + } + onPluginActivated (plugin) { this.pluginLoader.set(plugin, this.actives) this.event.emit('activate', plugin) diff --git a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx index dbde392b20..8c340912de 100644 --- a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx +++ b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx @@ -44,6 +44,10 @@ export const Workspace = (props: WorkspaceProps) => { props.plugin.resetUploadFile = () => {} /* implement an external API, consumed by the parent */ + props.request.setWorkspace = (name: string) => { + setWorkspace(name) + } + props.request.createWorkspace = () => { return createWorkspace() }