overleaf/services/web/frontend/js/ide/binary-files/BinaryFilesManager.js

66 lines
1.6 KiB
JavaScript
Raw Normal View History

/* eslint-disable
max-len,
no-unused-vars,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
let BinaryFilesManager
export default BinaryFilesManager = class BinaryFilesManager {
constructor(ide, $scope) {
this.ide = ide
this.$scope = $scope
this.$scope.$on('entity:selected', (event, entity) => {
if (this.$scope.ui.view !== 'track-changes' && entity.type === 'file') {
return this.openFile(entity)
} else if (entity.type === 'doc') {
return this.closeFile()
}
})
}
openFile(file) {
if (this.$scope.ui.view === 'editor') {
// store position before switching to binary view
this.$scope.$broadcast('store-doc-position')
}
this.ide.fileTreeManager.selectEntity(file)
if (this.$scope.ui.view !== 'history') {
this.$scope.ui.view = 'file'
}
this.$scope.openFile = null
this.$scope.$apply()
return window.setTimeout(
() => {
this.$scope.openFile = file
this.$scope.$apply()
this.$scope.$broadcast('file-view:file-opened')
},
0,
this
)
}
closeFile() {
return window.setTimeout(
() => {
this.$scope.openFile = null
if (this.$scope.ui.view !== 'history') {
this.$scope.ui.view = 'editor'
}
this.$scope.$apply()
},
0,
this
)
}
}