Merge pull request #949 from ethereum/fix-remixd

Added loader for localhost
pull/966/head
yann300 4 years ago committed by GitHub
commit cb6739964c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      apps/remix-ide/src/app/files/remixDProvider.js
  2. 1
      apps/remix-ide/src/app/files/remixd-handle.js
  3. 45
      libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx

@ -58,7 +58,7 @@ module.exports = class RemixDProvider {
} }
preInit () { preInit () {
this._registerEvent() this.event.trigger('loading')
} }
init (cb) { init (cb) {

@ -95,6 +95,7 @@ export class RemixdHandle extends WebsocketPlugin {
label: 'Connect', label: 'Connect',
fn: () => { fn: () => {
try { try {
this.locahostProvider.preInit()
super.activate() super.activate()
setTimeout(() => { setTimeout(() => {
if (!this.socket || (this.socket && this.socket.readyState === 3)) { // 3 means connection closed if (!this.socket || (this.socket && this.socket.readyState === 3)) { // 3 means connection closed

@ -91,6 +91,10 @@ export const Workspace = (props: WorkspaceProps) => {
setWorkspace(props.workspaces.length > 0 ? props.workspaces[0] : NO_WORKSPACE) setWorkspace(props.workspaces.length > 0 ? props.workspaces[0] : NO_WORKSPACE)
}) })
props.localhost.event.register('loading', () => {
remixdExplorer.loading()
})
if (props.initialWorkspace) { if (props.initialWorkspace) {
props.workspace.setWorkspace(props.initialWorkspace) props.workspace.setWorkspace(props.initialWorkspace)
setState(prevState => { setState(prevState => {
@ -120,7 +124,8 @@ export const Workspace = (props: WorkspaceProps) => {
fn: () => {} fn: () => {}
}, },
handleHide: null handleHide: null
} },
loadingLocalhost: false
}) })
/* workspace creation, renaming and deletion */ /* workspace creation, renaming and deletion */
@ -231,13 +236,18 @@ export const Workspace = (props: WorkspaceProps) => {
if (state.currentWorkspace === LOCALHOST) setWorkspace(NO_WORKSPACE) if (state.currentWorkspace === LOCALHOST) setWorkspace(NO_WORKSPACE)
props.fileManager.setMode('browser') props.fileManager.setMode('browser')
setState(prevState => { setState(prevState => {
return { ...prevState, hideRemixdExplorer: true } return { ...prevState, hideRemixdExplorer: true, loadingLocalhost: false }
}) })
}, },
show: () => { show: () => {
props.fileManager.setMode('localhost') props.fileManager.setMode('localhost')
setState(prevState => { setState(prevState => {
return { ...prevState, hideRemixdExplorer: false } return { ...prevState, hideRemixdExplorer: false, loadingLocalhost: false }
})
},
loading: () => {
setState(prevState => {
return { ...prevState, loadingLocalhost: true }
}) })
} }
} }
@ -372,19 +382,22 @@ export const Workspace = (props: WorkspaceProps) => {
/> />
} }
</div> </div>
<div className='pl-2 filesystemexplorer remixui_treeview'> {
{ !state.hideRemixdExplorer && state.loadingLocalhost ? <div className="text-center py-5"><i className="fas fa-spinner fa-pulse fa-2x"></i></div>
<FileExplorer : <div className='pl-2 filesystemexplorer remixui_treeview'>
name='localhost' { !state.hideRemixdExplorer &&
registry={props.registry} <FileExplorer
filesProvider={props.localhost} name='localhost'
menuItems={['createNewFile', 'createNewFolder']} registry={props.registry}
plugin={props.plugin} filesProvider={props.localhost}
focusRoot={state.reset} menuItems={['createNewFile', 'createNewFolder']}
contextMenuItems={props.registeredMenuItems} plugin={props.plugin}
/> focusRoot={state.reset}
} contextMenuItems={props.registeredMenuItems}
</div> />
}
</div>
}
<div className='pl-2 remixui_treeview'> <div className='pl-2 remixui_treeview'>
{ false && <FileExplorer { false && <FileExplorer
name='browser' name='browser'

Loading…
Cancel
Save