Commit e7120360 authored by yann300's avatar yann300

fix element

parent 1c252bd8
......@@ -53,14 +53,12 @@ var css = csjs`
`
module.exports = fileExplorer
var focusElement = null
var focusPath = null
function fileExplorer (appAPI, files) {
var self = this
this.events = new EventManager()
this.files = files
this.focusElement = null
this.focusPath = null
function remixdDialog () {
return yo`<div>This file has been changed outside of Remix IDE.</div>`
}
......@@ -117,7 +115,18 @@ function fileExplorer (appAPI, files) {
})
self.treeView.event.register('leafClick', function (key, data, label) {
if (self.focusElement) {
self.focusElement.classList.remove(css.hasFocus)
self.focusElement = null
self.focusPath = null
}
self.focusElement = self.treeView.labelAt(key)
if (self.focusElement) {
self.focusElement.classList.add(css.hasFocus)
self.focusPath = key
self.events.trigger('focus', [key])
appAPI.config.set('currentFile', key)
}
})
self.treeView.event.register('nodeClick', function (path, childrenContainer) {
......@@ -130,8 +139,7 @@ function fileExplorer (appAPI, files) {
if (error) console.error(error)
if (!fileTree) return
var newTree = normalize(path, fileTree)
newTree = self.treeView.renderProperties(newTree, false)
self.treeView.updateNode(path, newTree)
self.treeView.updateNodeFromJSON(path, newTree, false)
})
})
......@@ -145,16 +153,10 @@ function fileExplorer (appAPI, files) {
}
appAPI.event.register('currentFileChanged', (newFile, explorer) => {
if (focusElement && newFile !== focusPath) {
focusElement.classList.remove(css.hasFocus)
}
if (explorer === files) {
focusElement = self.treeView.labelAt(newFile)
if (focusElement) {
focusPath = newFile
focusElement.classList.add(css.hasFocus)
appAPI.config.set('currentFile', newFile)
}
if (self.focusElement && explorer.type !== files.type && self.focusPath !== newFile) {
self.focusElement.classList.remove(css.hasFocus)
self.focusElement = null
self.focusPath = null
}
})
fileEvents.register('fileRemoved', fileRemoved)
......@@ -273,8 +275,13 @@ function fileExplorer (appAPI, files) {
if (error) console.error(error)
if (!fileTree) return
fileTree = normalize(folderpath, fileTree)
var newTree = self.treeView.renderProperties(fileTree, false)
self.treeView.updateNode(folderpath, newTree)
self.treeView.updateNodeFromJSON(folderpath, fileTree, false)
self.focusElement = self.treeView.labelAt(self.focusPath)
// TODO: here we update the selected file (it applicable)
// cause we are refreshing the interface of the whole directory when there's a new file.
if (self.focusElement && !self.focusElement.classList.contains(css.hasFocus)) {
self.focusElement.classList.add(css.hasFocus)
}
})
}
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment