From 1ad539e573842cb0a56df8c50d5bd9d34920c7f4 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 3 Feb 2021 22:32:15 +0100 Subject: [PATCH] current folder changed --- apps/remix-ide/src/app.js | 8 ++++---- apps/remix-ide/src/app/files/remixDProvider.js | 4 ++++ libs/remix-ui/file-explorer/src/lib/file-explorer.tsx | 10 ++++++++++ libs/remixd/src/index.ts | 4 +++- libs/remixd/src/services/remixdClient.ts | 1 + 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 042204cf07..51d3d4019b 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -391,6 +391,10 @@ Please make a backup of your contracts and start using http://remix.ethereum.org filePanel.gitHandle ]) + if (isElectron()) { + appManager.activatePlugin('remixd') + } + try { engine.register(await appManager.registeredPlugins()) } catch (e) { @@ -455,9 +459,5 @@ Please make a backup of your contracts and start using http://remix.ethereum.org }) } - if (isElectron()) { - appManager.activatePlugin('remixd') - } - if (params.embed) framingService.embed() } diff --git a/apps/remix-ide/src/app/files/remixDProvider.js b/apps/remix-ide/src/app/files/remixDProvider.js index 8579b516be..039f2651b3 100644 --- a/apps/remix-ide/src/app/files/remixDProvider.js +++ b/apps/remix-ide/src/app/files/remixDProvider.js @@ -41,6 +41,10 @@ module.exports = class RemixDProvider { this._appManager.on('remixd', 'fileRenamed', (oldPath, newPath) => { this.event.trigger('fileRemoved', [this.addPrefix(oldPath), this.addPrefix(newPath)]) }) + + this._appManager.on('remixd', 'rootFolderChanged', () => { + this.event.trigger('rootFolderChanged', []) + }) } isConnected () { diff --git a/libs/remix-ui/file-explorer/src/lib/file-explorer.tsx b/libs/remix-ui/file-explorer/src/lib/file-explorer.tsx index 252b8d70d4..b1d1a46385 100644 --- a/libs/remix-ui/file-explorer/src/lib/file-explorer.tsx +++ b/libs/remix-ui/file-explorer/src/lib/file-explorer.tsx @@ -127,6 +127,7 @@ export const FileExplorer = (props: FileExplorerProps) => { if (state.fileManager) { filesProvider.event.register('fileExternallyChanged', fileExternallyChanged) filesProvider.event.register('fileRenamedError', fileRenamedError) + filesProvider.event.register('rootFolderChanged', rootFolderChanged) } }, [state.fileManager]) @@ -482,6 +483,15 @@ export const FileExplorer = (props: FileExplorerProps) => { }, null) } + // register to event of the file provider + // files.event.register('rootFolderChanged', rootFolderChanged) + const rootFolderChanged = async () => { + const files = await fetchDirectoryContent(name) + setState(prevState => { + return { ...prevState, files } + }) + } + const uploadFile = (target) => { // TODO The file explorer is merely a view on the current state of // the files module. Please ask the user here if they want to overwrite diff --git a/libs/remixd/src/index.ts b/libs/remixd/src/index.ts index 8211aa8028..04725c14f2 100644 --- a/libs/remixd/src/index.ts +++ b/libs/remixd/src/index.ts @@ -1,5 +1,6 @@ 'use strict' import { RemixdClient as sharedFolder } from './services/remixdClient' +import { GitClient } from './services/gitClient' import Websocket from './websocket' import * as utils from './utils' @@ -7,6 +8,7 @@ module.exports = { Websocket, utils, services: { - sharedFolder + sharedFolder, + GitClient } } diff --git a/libs/remixd/src/services/remixdClient.ts b/libs/remixd/src/services/remixdClient.ts index 4a48485c19..a6197b3136 100644 --- a/libs/remixd/src/services/remixdClient.ts +++ b/libs/remixd/src/services/remixdClient.ts @@ -20,6 +20,7 @@ export class RemixdClient extends PluginClient { sharedFolder (currentSharedFolder: string, readOnly: boolean): void { this.currentSharedFolder = currentSharedFolder this.readOnly = readOnly + if (this.isLoaded) this.emit('rootFolderChanged') } list (): Filelist {