current file fixed after deletion

pull/2356/head
Aniket-Engg 3 years ago committed by Aniket
parent a937fde1ab
commit 11eabc8a97
  1. 2
      apps/remix-ide/src/app/files/fileManager.ts
  2. 13
      apps/remix-ide/src/app/panels/tab-proxy.js

@ -600,7 +600,7 @@ class FileManager extends Plugin {
// TODO: Only keep `this.emit` (issue#2210)
this.emit('fileRemoved', path)
this.events.emit('fileRemoved', path)
this.openFile()
this.openFile(this._deps.config.get('currentFile'))
}
async unselectCurrentFile() {

@ -41,6 +41,13 @@ export class TabProxy extends Plugin {
if (this.fileManager.mode === 'browser') {
name = name.startsWith(workspace + '/') ? name : workspace + '/' + name
// If deleted file is not current file and not an active tab in editor,
// ensure current file is active in the editor
if (this.fileManager.currentFile() && name !== this.fileManager.currentFile()) {
const currentFile = this.fileManager.currentFile()
const currentFileTabPath = currentFile.startsWith(workspace + '/') ? currentFile : workspace + '/' + currentFile
this.removeTab(name, { name: currentFileTabPath })
}
this.removeTab(name)
} else {
name = name.startsWith(this.fileManager.mode + '/') ? name : this.fileManager.mode + '/' + name
@ -261,11 +268,11 @@ export class TabProxy extends Plugin {
this._handlers[name] = { switchTo, close }
}
removeTab (name) {
removeTab (name, currentFileTab) {
delete this._handlers[name]
let previous = null
let previous = currentFileTab
this.loadedTabs = this.loadedTabs.filter((tab, index) => {
if (tab.name === name) previous = this.loadedTabs[index - 1]
if (!previous && tab.name === name) previous = this.loadedTabs[index - 1]
return tab.name !== name
})
this.renderComponent()

Loading…
Cancel
Save